- 本文连接:https://blog.csdn.net/followYouself/article/details/125948790
一、流程图
1.1 MVC 和 MVP
- MVC的缺点。 View 和Model可能会直接产生耦合,View可以直接通过Model请求数据,Model的数据变化,也可以直接通知到View。MVP和MVVM解决了这个问题,View 和 Model完全解耦。
- MVP中 View 和 Model之间的通信,必须经过Presenter。
- MVC的Controller、MVP的Presenter都处理了大量的业务控制逻辑,代码相对复杂。
1.2 MVVM
- MVVM 模式的重要思想就是数据(Model)和View的 双向绑定,实现两者的自动更新。
- MVVM相比MVP,View和ViewModel层双向绑定,ViewModel层中的数据变化,会直接体现在View上,而View的数据更新,也会体现在ViewModel中。
- 相比于MVP的优点。通过观察者模式、响应式编程,MVVM 简化了数据更新逻辑,降低了数据更新时出现bug的可能性。
- 双向绑定也带来了缺点,比如问题的调试与定位难度增加。
二、JetPack组件
Android JetPack组件大量使用了MVVM架构模式。
2.1 举例
- Data Binding
- Lifecycle
- LiveData
- ViewModel
- Room