參考資料:http://www.lxweimin.com/p/a15d6e68d93f
MVVM 是從 MVP 的進(jìn)一步發(fā)展與規(guī)范,MVP 隔離了 M 與 V 的直接聯(lián)系后,靠 Presenter 來中轉(zhuǎn),所以使用 MVP 時 P 是直接調(diào)用 View 的接口來實現(xiàn)對視圖的操作的,M 與 V是隔離了,方便測試了,但代碼還不夠優(yōu)雅簡潔啊,所以 MVVM 就彌補(bǔ)了這些缺陷。
概述
MVVM模式包含了三個部分:
Model :基本業(yè)務(wù)邏輯
View :視圖內(nèi)容
ViewModel: 將前面兩者聯(lián)系在一起的對象
當(dāng)View有用戶輸入后,ViewModel通知Model更新數(shù)據(jù),同理Model數(shù)據(jù)更新后,ViewModel通知View更新。
MVP MVVM區(qū)別
Paste_Image.png
Paste_Image.png
可以看到 ViewModel 承擔(dān)了 Presenter 中與 view和 Model 交互的職責(zé),與 MVP模式不同的是,VM與 V 之間是通過** Datebingding 實現(xiàn)的,而 P是持有 View 的對象,直接調(diào)用 View 中的一些接口方法來實現(xiàn)。ViewModel可以理解成是View的數(shù)據(jù)模型和Presenter的合體。它通過雙向綁定(松耦合)解決了MVP中Presenter與View聯(lián)系比較緊密的問題。**
相關(guān)內(nèi)容:
數(shù)據(jù)綁定