基于iOS的MVC框架

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。
  • 可測試性較差,很難做出單元測試。
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容