-
View層:Activity和Layout布局視圖文件。
Model:獲取數(shù)據(jù)層。
View與ViewModel通過DataBinding進行通信。
使用MVVM需要實現(xiàn)以下步驟:
新建MVVMViewModel對象,繼承BaseObservable。
持有MVVMModel數(shù)據(jù)對象。
改進DataBinding,實現(xiàn)EditText雙向綁定ViewModel里面的userInput字段(或?qū)ο螅?/p>
改進ViewModel,提供userInput字段,實現(xiàn)get和set方法并添加@Bindable注解和添加notifyPropertyChange(BR.userInput)方法。
查看全部 -
雙向綁定?視圖發(fā)生變化,一般是EditView,在@后面加上 = 號即可。
查看全部 -
等級對象繼承 android.databinding.BaseObservable
設(shè)置@Bindable 注解,等級發(fā)生變化的時候自動更新
設(shè)置notifyPropertyChanged(BR.level),當(dāng)值發(fā)生變化是通知視圖更新。
查看全部 -
DataBinding是谷歌發(fā)布的實現(xiàn)數(shù)據(jù)與視圖雙向綁定框架
DataBinding使用步驟
查看全部 -
MVVM模型
其實VM 約等于 MVP中的Presenter
相對于MVP
1、減少接口數(shù)量。
2、使用數(shù)據(jù)視圖綁定DataBinding,減少findViewById操作。
查看全部 -
MVP優(yōu)缺點
優(yōu)點:
解決了MVC中Controller與View過渡耦合的缺點,職責(zé)劃分明確,更加易于維護。
缺點:
接口數(shù)量過多,項目復(fù)雜度提升。隨著項目復(fù)雜度的提升,Presenter層將越來越臃腫。
使用MVP的建議
查看全部 -
MVP示例圖
1、定義V層,Activity實現(xiàn)IMVPView接口。
2、定義M層,實現(xiàn)數(shù)據(jù)查詢。
3、定義P層,業(yè)務(wù)數(shù)據(jù)邏輯處理,作為中間層還負責(zé)與V、M層數(shù)據(jù)通信則需要持有View接口和Model對象。
使用MVP實現(xiàn)
查看全部 -
MVP即:Model-View-Presenter
MVP與MVC的差別
1、Model與View不再直接進行同學(xué),而是通過中間層Presenter來實現(xiàn)。
2、Activity的功能被簡化,不再從當(dāng)控制器,值負責(zé)View層的工作。
查看全部 -
MVC缺點
1、Controller與View未完全解耦(Activity即是Controller控制器,又要承擔(dān)部分View試圖的工作)。
2、Activity過于臃腫,還承擔(dān)的部分業(yè)務(wù)邏輯。
查看全部 -
mvp模型
查看全部 -
mvvm模型圖
查看全部 -
使用MVP的建議
查看全部 -
mvp模型
查看全部 -
查看全部
-
查看全部
舉報