MVVM架构
前言
- 谷歌推出了dataBinding框架相当于把MVVM架构在android中落地了
- 自己说想要学MVVM架构说了很久,却一直没有行动
- 再加上觉得自己已经很久没有写博文学习了,所以就有了这篇博客的出现
我眼中的MVVM
- view应该做和UI有关的操作
- model实现的不仅仅是bean的功能,还有访问数据,解析数据,通过接口回调给viewmodel,model应该专注于处理业务逻辑,无任何UI引用。经过数据转换和操作并最终映射绑定到View层某个UI元素的属性上。
- viewModel持有的应该是View和Model的接口
Demo实现
ViewModel层
- 可以看到,ViewModel层内的常用的东西其实是可以罗列出来的
- 持有一个Model层的引用,用来调用Model层的方法
- 实现数据绑定,在View中可对这些数据进行监控,根据数据的变化来做UI的改变
- 实现方法绑定,在xml中可以直接调用对应的方法
View层
- 主要是通过监听Field实现UI逻辑
- 不做其他事情
Model层
- Model层很容易可以看出来集合了传统的Bean类和对数据的访问操作
优缺点
优点
- MVVM的主要优点应该就是他一直在强调的数据驱动UI,UI可以通过监控数据来变更自己
- 抛弃了繁杂的findViewById
缺点
- 我在使用MVVM的过程中发现一个问题,就是使用MVVM十分不好调试
附录