Android MVVM模式
2019-03-03 本文已影响29人
小红军storm
1、MVVM模式各部分的定义
1.1、MVVM模式分为3个部分:Model、View和ViewModel。
(1)Model :数据层,包含数据实体和对数据实体的操作。
(2)View : 界面层,对应于Activity、XML、View,负责数据显示以及用户交互。
(3)ViewModel : 关联层,将Model和View进行绑定,Model或View更改时,实时刷新对方。
1.2、注意点
(1)View只做和UI相关的工作,不涉及任何业务逻辑、不涉操作数据、不处理数据。UI和数据严格的分开。
(2)ViewModel只做和业务逻辑相关的工作,不涉任何和UI相关的操作、不持有控件引用,不更新UI。
2、MVVM模式图
mvvm模式图.png3、MVVM的优势和劣势
3.1、MVVM的优势
(1)、使得M,V,VM的解耦更加彻底,在mvp模式中,p需要持有v的引用,才能去刷新ui;在mvvm模式中,View和Model使用databingding进行双向绑定,一方改变会直接通知另外一方,使得viewmodel能专注于业务逻辑的处理,而不需要去关心ui刷新。(最大优势,下面两个可忽略。)
(2)、不需要findViewById也不需要butterknife,不需要拿到具体的View去设置数据等,这些都可以用DataBinding完成。
(3)、不会像MVC一样导致Activity中代码量巨大,也不会像MVP一样出现大量的View接口。项目结构更加低耦合。
3.2、MVVM的劣势
MVVM的缺点数据绑定使得Bug很难被调试。你看到界面异常了,有可能是你 View 的代码有 Bug,也可能是 Model 的代码有问题。