• 本文连接:https://blog.csdn.net/followYouself/article/details/125948790

一、流程图

1.1 MVC 和 MVP

  1. MVC的缺点。 View 和Model可能会直接产生耦合,View可以直接通过Model请求数据,Model的数据变化,也可以直接通知到View。MVP和MVVM解决了这个问题,View 和 Model完全解耦。
  2. MVP中 View 和 Model之间的通信,必须经过Presenter。
  3. MVC的Controller、MVP的Presenter都处理了大量的业务控制逻辑,代码相对复杂。

1.2 MVVM

  1. MVVM 模式的重要思想就是数据(Model)和View的 双向绑定,实现两者的自动更新。
  2. MVVM相比MVP,View和ViewModel层双向绑定,ViewModel层中的数据变化,会直接体现在View上,而View的数据更新,也会体现在ViewModel中。
  3. 相比于MVP的优点。通过观察者模式、响应式编程,MVVM 简化了数据更新逻辑,降低了数据更新时出现bug的可能性。
  4. 双向绑定也带来了缺点,比如问题的调试与定位难度增加。

二、JetPack组件

Android JetPack组件大量使用了MVVM架构模式。

2.1 举例

  1. Data Binding
  2. Lifecycle
  3. LiveData
  4. ViewModel
  5. Room