MVC
模型图
示例
优缺点
MVP
模型图
- IView是一个interface,接口中定义操作View的方法,由Activity实现,Presenter调用。用于规定Presenter可以操作View(包括了Activity)的哪些功能(不能操作Activity的全部)。
- View不持有Model的实例,Presenter持有Model的实例。
MVC和MVP的区别
示例
- Presenter层持有View层(Activity)和Model层的引用。
优缺点
- 缺点:随着IView接口不断添加新的方法,其实现类Activity中也需要不断实现新方法,增加了Activity中的代码量。
MVVM
模型图
- 引入了DataBinding(观察者模式)。
DataBinding的使用
- 启用DataBinding
在build.gradle(app)中添加:
2.修改布局文件为DataBinding布局
setContentView
- View和ViewModel通过DataBinding进行通信