標籤:ios app xcode 設計模式 mvc
本片文章介紹MVC設計模式及其在iOS開發中的提示
MVC是設計模式的起源,也是在軟體工程領域使用最多的一種設計模式。
MVC即:Model模型、View視圖、Controller控制器
模型:
在模型對象中封裝資料並定義操作資料的特定邏輯行為
模型可以表示複雜的資料結構,可以是螢幕上顯示的資料、等待處理的資料等
視圖:
使用視圖對象向使用者展示資訊
視圖對象可以響應使用者的操作,並懂得如何將自己展現在螢幕上
視圖對象通常從應用程式的模型對象中擷取資料用以展示。
可以跟一個模型對象的部分、整體或者多個模型對象合作。
控制器:
使用控制器將模型和視圖聯絡在一起,就像視圖對象和模型對象的中間人。
控制器對象還可以為應用程式執行其他動作,比如管理其他對象的生命週期,進行設定和協調工作
使用者通過從視圖對象(如在文字框中輸入)得到的值,傳給控制器對象,控制器對象也可以讓視圖對象根據此使用者操作改變其外觀或行為。
1. 在控制器中封裝模型對象(數組)
如果是簡單對象(如NSString),無需使用模型類進行封裝
如果是非OC對象,則應進行一定的封裝;
如果是詞典資料,則應字典轉模型
2. 字典轉模型
在iOS中資料的來源往往是:JSON、plist、XML等,這些資料首先轉換為字典或數組。
為了方便管理字典中的資料,採用字典轉模型的方法,以模型對象管理。
字典的key作為模型中的屬性名稱
字典中的value作為模型對象中的屬性值。
構造模型對象的方法中,傳遞字典對屬性進行初始化,
3. 控制器的模型數組屬性應當採取懶載入方式
即:重寫數組的getter方法,讓模型資料在第一次被使用時載入。
在屬性指標為nil時,從指定位置將資料載入的程式中,並建立數組將資料存放區到數組中。
指定的位置可以是本地的資料庫、plist、JSON,網路傳遞過來的資料等。
純程式碼設計檢視:
1. 定義一個視圖子類
2. 提供類方法建立視圖對象
2.1 類方法封裝alloc+init
2.2 重寫init方法,建立所有的子視圖並進行一次性的屬性設定
2.3 進行螢幕適配:重寫layoutSubviews方法或使用AutoLayout
3. 視圖子類添加資料模型屬性並重寫setter方法將資料顯示到子視圖
如果子視圖的資料固定可能不需要資料模型屬性
xib設計檢視:
1. 在Xib中設計一個視圖,設計好視圖中的子控制項及其相關屬性,並進行螢幕適配
2. 定義一個視圖的子類,父類類型應當為Xib中設定的視圖類的類型,並在xib中進行關聯
3. 提供類方法建立視圖對象,使用xib載入視圖對象的方式
3. 視圖子類添加資料模型屬性並重寫setter方法將資料顯示到子視圖
如果子視圖的資料固定可能不需要資料模型屬性
控制器作為視圖與模型的橋樑,應答具有以下功能:
1. 管理檢視對象
2. 管理模型對象(數組)
3. 實現關聯的商務邏輯,如:子視圖的建立、模型的賦值等
4. 處理各種複雜的商務邏輯,如:按鈕被點擊時的響應動作
控制器可分成如下幾類:
視圖控制器:作為一個頁面的管理者
代理控制器:用來實現某些對象的資料來源和代理方法
模型控制器:管理複雜的模型資料,包括擷取、解析等功能
...
本文出自 “teacherAn” 部落格,請務必保留此出處http://annmeng.blog.51cto.com/3321237/1746499
iOS開發設計模式之MVC