Monday, September 14, 2020

Android MVVM

适用场景:适用于界面展示的数据较多的项目。 
 
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

n8n index

 【n8n免費本地端部署】Windows版|程式安裝x指令大補帖  【一鍵安裝 n8n】圖文教學,獲得無限額度自動化工具&限時免費升級企業版功能