MVC
什么是MVC:
MVC從字面上理解為:model(模型),view(視圖),controller(控制器)。主要的特點在于將數(shù)據(jù)與視圖分離開來。
MVC的特征和體現(xiàn):
- view上現(xiàn)實什么東西取決于model,及view會隨著model的改變而改變
- controller負(fù)責(zé)初始化model,并將model傳遞給view。
- model模型對象:封裝了應(yīng)用程序的數(shù)據(jù),并定義了操控和處理數(shù)據(jù)的邏輯和運算。
- view對象:是在應(yīng)用程序中用戶可以看見的對象,有對于用戶操作響應(yīng)的功能。視圖對象主要就是來顯示model對象,并可使model對象可編譯。
- controller:是view和model交互的媒介。
MVC 通訊
- model和view之間永遠(yuǎn)不能通訊,只能通過controller傳遞。
- controller可以直接和model通訊(讀寫調(diào)用Model),model通過Notification和KVO機制與Controller間接通訊。
- controller可以直接和view交互,并掌控著view的生命周期。view可以通過action把用戶的touch,move操作反饋給controller
MVC 的不足
- 嚴(yán)重失衡的比例,過于輕量級的model,以及臃腫龐大的controller。
隨著業(yè)務(wù)不斷的深入,service服務(wù)已經(jīng)不足以滿足客戶端的數(shù)據(jù)要求了,所以一部分邏輯會移入客戶端,自然而然的就寫入controller。- 遺失的網(wǎng)絡(luò)層邏輯。mvc對于所有對象都被歸類為,view,model,controller。相對其他不少的業(yè)務(wù)邏輯無法歸類,大多數(shù)都只能寫入到controller。
- 可測試性較差,很難做出單元測試。