Android 设计模式

MVC

MVP

简介

主要分两种:Passive View和Supervising Controller。后者很少用,不同在于Presenter会把一部分简单的同步逻辑交给View自己去做,Presenter只负责比较复杂的、高层次的UI操作。
优点

  1. 解耦了View和Model依赖。
  2. View可以进行组件化。
  3. 便于测试。

缺点

  1. 接口较多;
  2. View和Model之间的繁琐同步。

MVVM

简介

model,View,ViewModel构成。
在ViewModel当中会有一个叫Binder,或者是Data-binding engine的东西。以前全部由Presenter负责的View和Model之间数据同步操作交由给Binder处理。核心是Two-way data-binding,双向数据绑定。声明View上的显示的内容是和Model的哪一块数据绑定的。当ViewModel对进行Model更新的时候,Binder会自动把数据更新到View上去,当用户对View进行操作(例如表单输入),Binder也会自动把数据更新到Model上去。

优点

  1. 解决了MVP大量的手动View和Model同步的问题,

缺点

  1. 简单页面,大材小用,比较重;
  2. 大型的图形应用程序,ViewModel的构建和维护的成本都会比较高;
  3. 数据绑定的声明是指令式地写在View的模版当中的,这些内容是没办法去打断点debug的。

猜你喜欢

转载自blog.csdn.net/ThePromonkeyOf_HeLuo/article/details/81171269
今日推荐