《從零開始學(xué)Swift》學(xué)習(xí)筆記(Day67)——Cocoa Touch設(shè)計(jì)模式及應(yīng)用之MVC模式

原創(chuàng)文章,歡迎轉(zhuǎn)載。轉(zhuǎn)載請(qǐng)注明:關(guān)東升的博客

MVC(Model-View-Controller,模型-視圖-控制器)模式是相當(dāng)古老的設(shè)計(jì)模式之一,它最早出現(xiàn)在Smalltalk語言中?,F(xiàn)在,很多計(jì)算機(jī)語言和架構(gòu)都采用了MVC模式。

MVC模式概述
MVC模式是一種復(fù)合設(shè)計(jì)模式,由 “觀察者”(Observer)模式、“策略”(Strategy)模式和“合成”(Composite)模式等組成。MVC模式由3個(gè)部分組成,如圖所示,這3個(gè)部分的作用如下所示。
? 模型。保存應(yīng)用數(shù)據(jù)的狀態(tài),回應(yīng)視圖對(duì)狀態(tài)的查詢,處理應(yīng)用業(yè)務(wù)邏輯,完成應(yīng)用的功能,將狀態(tài)的變化通知視圖。
? 視圖。為用戶展示信息并提供接口。用戶通過視圖向控制器發(fā)出動(dòng)作請(qǐng)求,然后再向模型發(fā)出查詢狀態(tài)的申請(qǐng),而模型狀態(tài)的變化會(huì)通知給視圖。
? 控制器。接收用戶請(qǐng)求,根據(jù)請(qǐng)求更新模型。另外,控制器還會(huì)更新所選擇的視圖作為對(duì)用戶請(qǐng)求的回應(yīng)??刂破魇且晥D和模型的媒介,可以降低視圖與模型的耦合度,使視圖和模型的權(quán)責(zé)更加清晰,從而提高開發(fā)效率。


1.png

對(duì)應(yīng)于哲學(xué)中的“內(nèi)容”與“形式”, 在MVC模型中,模式是“內(nèi)容”,它存儲(chǔ)了視圖所需要的數(shù)據(jù),視圖是“形式”,是外部表現(xiàn)方式,而控制器是它們的媒介。
Cocoa Touch中的MVC模式
上面我們討論的是通用的MVC模式,而Cocoa和Cocoa Touch框架中的MVC模式與傳統(tǒng)的MVC模式略有不同,前者的模型與視圖不能進(jìn)行任何通信,所有的通信都是通過控制器完成的,如圖所示。


2.png

在Cocoa Touch框架的UIKit框架中,UIViewController是所有控制器的根類,如UITableViewController、UITabBarController和UINavigationController。UIView是視圖和控件的根類。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

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

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