對(duì)于MVC、MVVM、MVP設(shè)計(jì)模式的總結(jié)

一、MVC設(shè)計(jì)模式

1、模式分析

Models(模型):數(shù)據(jù)層,負(fù)責(zé)處理數(shù)據(jù)的數(shù)據(jù)接口層;

Views(視圖):展示層,以UI開頭的類基本屬于Views;

Controller:重控制器,負(fù)責(zé)Model與View之間連接,當(dāng)用戶對(duì)View操作時(shí)它負(fù)責(zé)去修改相應(yīng)的model;當(dāng)Model值發(fā)生變化時(shí)它負(fù)責(zé)更新對(duì)應(yīng)的View;

2、性能分析

劃分層次:View和Model實(shí)現(xiàn)了分離,但View和Controller耦合太厲害;

可測(cè)性:劃分不清楚,導(dǎo)致只有Model可進(jìn)行測(cè)試;

易用性:相較于其他設(shè)計(jì)模式,代碼量少,易上手。

3、模型分析圖(摘自網(wǎng)絡(luò))


二、MVP設(shè)計(jì)模式

1、模式分析

Models:數(shù)據(jù)層

ViewController:視圖控制器,實(shí)際扮演View的角色

Presenter:只負(fù)責(zé)更新數(shù)據(jù)和視圖狀態(tài)

2、性能分析

劃分層次:劃分了Presenter和Model以及簡(jiǎn)單的視圖

可測(cè)性:可通過(guò)View來(lái)測(cè)試大部分的業(yè)務(wù)邏輯

易用性:思路清晰,但代碼量較多

3、模型分析圖(摘自網(wǎng)絡(luò))


三、MVVM設(shè)計(jì)模式

1、模式分析

Model:數(shù)據(jù)訪問(wèn)層

View:UI界面

ViewModel:View的抽象,負(fù)責(zé)View與Model之間的信息轉(zhuǎn)換

2、性能分析

劃分層次:劃分了Model、View、以及ModelView,與其他設(shè)計(jì)模式主要區(qū)別在于ModelView的劃分。

可測(cè)性: 因?yàn)閂iewModel對(duì)View是分離的,測(cè)試簡(jiǎn)單。

易用性: 簡(jiǎn)潔、易用性較強(qiáng)。

3、模型分析圖(摘自網(wǎng)絡(luò))


四、三種設(shè)計(jì)模式總結(jié)(附分析表)


1、就開發(fā)速度而言,Cocoa MVC是最好的架構(gòu)選擇方案

2、MVP可測(cè)試性強(qiáng)、代碼量大

3、MVVM集合了上述方法的有點(diǎn),可測(cè)試性很強(qiáng)。

五、ReactiveCocoa

結(jié)合了函數(shù)式編程、響應(yīng)式編程使用RAC來(lái)解決問(wèn)題,不需考慮調(diào)用順序,直接考慮結(jié)果,代碼高聚合,方便管理。

當(dāng)某些事件響應(yīng)時(shí),可通過(guò)RAC來(lái)處理某些業(yè)務(wù)邏輯,比如按鈕的點(diǎn)擊使用action,ScrollView滾動(dòng)使用delegate,屬性值改變使用KVO等系統(tǒng)提供的方式。

六、體會(huì)

通過(guò)在網(wǎng)上查找ReactiveCocoa的相關(guān)資料接觸到RACSiganl信號(hào)類,之前未曾接觸使用過(guò),還是存在一些難度,不能透徹了解。對(duì)MVC、MVP、MVVM這三種設(shè)計(jì)模式已有一定了解,希望在以后能夠結(jié)合實(shí)際項(xiàng)目,進(jìn)行學(xué)以致用。

七、重點(diǎn)參考資料

<1>http://www.ruanyifeng.com/blog/2015/02/mvcmvp_mvvm.html

<2>http://blog.csdn.net/li_shuang_ls/article/details/50176891

<3>http://www.cocoachina.com/ios/20160108/14916.html

<4>http://www.itdecent.cn/p/87ef6720a096

<5>https://objccn.io/issue-13-1/

最后編輯于
?著作權(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)容