什麼是MVC設計模式
MVC是Model(M)-View(V)-Controller(C)的縮寫,是一種常見的設計模式,在Java web中有使用,在IOS開發中是一種基本的設計模式。使用MVC設計模式來構建一個App的項目,會使得項目結構更加清晰,能夠加快開發速度。
MVC設計模式由三部分組成:
- Model: Mode中存有數據。凡是存有數據的東西,都可以稱爲Model,例如model object,networking。
- View: 是App的界面。View只用來展示數據,不包含任何邏輯代碼,因此通常可以複用。例如UILabel。
- Controller: 用來控制View和Model,通過代理模式實現。在理想情況下,控制器實體是不知道處理的view是那個,它是通過protocol進行數據交互。
MVC的具體組成部分
Model
mode層包含了app中的數據。這一層不僅包含了model類,而且包含了能夠項目中的其他類和實例。
- 網絡代碼
- 持久化代碼
- 解析代碼
- 管理層和抽象層
- 數據源和代理
- 常量
- 幫助程序和擴展
View
當用戶和App進行交互,就是跟view層進行交互,view層不應該包含任何業務邏輯。View層包括如下:
- UIView的子類
- UIKit/AppKit中的組件
- 核心動畫
- 核心圖形
Controller
Controller層是被複用最少的。Controller層的職責包括如下:
- 決定訪問的目標:持久化或網絡
- 該多久刷新一次應用程序
- 下一個屏幕是那個
- 如果程序進入後臺程序,該怎麼樣處理
- 用戶點擊一個單元格,該做什麼處理
可以將controller層看作一個app的大腦,它來決定接下來發生什麼。
MVC的優勢與劣勢
優勢
- 將邏輯代碼、試圖、數據分離,分別組織到不同層內,項目結構清晰
- 在改進頁面和用戶交互的同時不需要重新邊寫業務邏輯
- 可維護性高
劣勢
- 破壞了一些好的軟件設計規範
- View Controller中有大量的代碼
- 較差的可測性,View Controller中混合了視圖邏輯代碼和業務邏輯代碼
MVC的使用場景
APP在開發初期可以使用MVC設計模式,在開發過程中可能需要向其他設計模式轉換。