MVC MVP MVVM框架

236 阅读1分钟

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的使用

  1. 启用DataBinding

在build.gradle(app)中添加:

2.修改布局文件为DataBinding布局

  • setContentView
  1. View和ViewModel通过DataBinding进行通信

总结