Android(安卓)MVVM框架熟悉
MVVM全名是Model-View-ViewModel,MVVM可以看作MVP的升级版。降低View和控制模块的耦合,减轻了视图的压力。与MVP不同的地方是,ViewModel会跟View进行绑定。这里会用到Android的 Data Binding。 MVP与MVVM区别在于ViewModel与View绑定后,ViewModel与View其中一方的数据更新都能立即通知到对方;Presenter需要通过接口去通知View进行更新。
Model:模型层,负责处理数据的加载或存储。与MVP中的M一样。
View:视图层,负责界面数据的展示,与用户进行交互。与MVP中的V一样。
ViewModel:视图模型,负责完成View于Model间的交互,负责业务逻辑
1.View与ViewModel进行绑定,能够实现双向的交互。ViewModel数据改变时,View会相应变动UI,反之亦然。
2.ViewModel进行业务逻辑处理,通知Model去更新。
3.Model数据更新后,把新数据传递给ViewModel。
MVVM的优点:
相比于MVP,Presente与View存在耦合。ViewModel与View的耦合则更低,ViewModel只负责处理和提供数据,UI的改变,比如TextView 替换 EditText,ViewModel 几乎不需要更改任何代码,只需专注于数据处理就可以了。
View Model里面只包含数据和业务逻辑,没有UI的东西,方便单元测试。
MVVM的缺点:
数据绑定使得程序较难调试,界面出现异常时,有可能是 View 的代码有问题,也可能是 Model 的代码有问题。由于数据绑定使得数据能够快速传递到其他为止,因此要定位出异常就比较有难度了。
更多相关文章
- Android(安卓)Jetpack-Navigation 初见
- android转屏时数据保存问题
- android sqlite 简明教程
- Android(安卓)打造RxBus2.x的全面详解
- Android之SQLite 学习一
- sparseArray
- SQLite基础
- 简单的android客户端servlet服务端的交互
- Android(安卓)Bundle存储数据类型