? ? 好久沒有更過帖了盯质,今天我們來聊一下MVVM ,MVC , MVP 的區(qū)別及通信方式
? ? 首先來說MVC
MVC模式最開始是服務(wù)器端的Web開發(fā)遵倦,后來漸漸的變成了用作客戶端的Web開發(fā),
? ? 能夠滿足他的復(fù)雜性署海、豐富性。
M : Model 模型層
? 其主要用于封裝和應(yīng)用程序的業(yè)務(wù)邏輯及相關(guān)數(shù)據(jù)還有對數(shù)據(jù)的處理方法
V : View 視圖層
? 主要用來渲染頁面
C : Controller 控制層
? 它是控制 Model 模型層 和 View 視圖層
? ? ? 控制程序流程和頁面業(yè)務(wù)邏輯
MVC模式的特點(diǎn):
(1)關(guān)注點(diǎn)實(shí)現(xiàn)分離 耦合性低
(2)易開發(fā),易維護(hù)
(3)代碼重用率性高
(4)技術(shù)含量降低
(5)生命周期成本低
(6)部署快
MVC模式的缺點(diǎn):
(1)對應(yīng)用程序有要求旷坦,不適用于小型、中型規(guī)模的程序
(2)低效率訪問
MVC模式
MVP可以說成是MVC改良模式佑稠,他和MVC模式的相同之處在于Controller或者Presenter
? ? ? ? 都負(fù)責(zé)業(yè)務(wù)邏輯秒梅,Model管理數(shù)據(jù),Presenter將Model模型層和View視圖層進(jìn)行了分離。
但是主要的循環(huán)邏輯還是在Persenter里面實(shí)現(xiàn)
M :Model 模型層
V : View 視圖層
P : Persenter 負(fù)責(zé)溝通Model模型層和View視圖層舌胶,同時(shí)改變了通信方向捆蜀。
MVP的特點(diǎn):
(1)M/V/P之間是雙向通信的
(2)View和Model之間是互不通信的,都是通過Presenter進(jìn)行傳遞
(3)所有邏輯部署都在Presenter內(nèi)進(jìn)行
(4) Presenter與具體的View是沒有直接關(guān)聯(lián)的幔嫂,是通過定義好的接口進(jìn)行
? 交互所得
MVPde缺點(diǎn):
(1)交互過于頻繁 是的兩者聯(lián)系過于緊密辆它,
? 一旦視圖發(fā)生更改,Presenter也要進(jìn)行變更
最后來說MVVM 是什么
MVVM模型和MVC模型很類似履恩,目的都是分離視圖和模型
? M : Model 模型層
? 其主要用于封裝和應(yīng)用程序的業(yè)務(wù)邏輯及相關(guān)數(shù)據(jù)還有對數(shù)據(jù)的處理方法
? V : View 視圖層
? 主要用來渲染頁面
VM : View-Model 控制層
? 它是作為橋梁連接 Model 模型層 和 View 視圖層
MVVM模型特點(diǎn):
(1)低耦合锰茉,
(2)可重用性
(3)獨(dú)立開發(fā)
(4)可測試