MVVM(Model-View-ViewModel)将Presenter改为ViewModel,其和MVP类似,不同的是ViewModel跟Model和View进行双向绑定:当View发生改变时,ViewModel通知Model进行更新数据;同理Model数据更新后,ViewModel通知View更新。
优点:
低耦合
View可以独立于Model变化和修改,一个ViewModel可以绑定到不同的View上,当View变化的时候Model可以不变,当Model变化的时候View也可以不变。
可重用性
可以把一些View逻辑放在一个ViewModel里面,让很多view重用这段View逻辑。
独立开发
开发人员可以专注于业务逻辑和数据的开发(ViewModel),另一个开发人员可以专注于UI开发。
可测试
界面素来是比较难于测试的,而现在测试可以针对ViewModel来写。
提高可维护性 提供双向绑定机制,解决了MVP大量的手动View和Model同步的问题。从而提高了代码的可维护性。
缺点:
- 过于简单的图形界面不适用。
- 对于大型的图形应用程序,视图状态较多,ViewModel的构建和维护的成本都会比较高。
- 数据绑定的声明是指令式地写在View的模版当中的,这些内容是没办法去打断点debug的。
- 目前这种架构方式的实现方式比较不完善规范,常见的就是DataBinding框架
No comments:
Post a Comment