开发工具与关键技术:VS 2019
作者:老薛
撰写时间:2021/6/15
很多同学会将这两者混为一谈,所以开始介绍之前,我们需要先理清楚这两者的关系。MVVM和MVC、MVP一样,是项目中的架构设计思想;DataBinding是一种工具,它可以用于MVVM,也同样可以用于MVC和MVP。所以这两者是两回事,一个是架构设计思想,一个是工具。但是有一点,那就是Android中的MVVM一般都需要借助DataBinding来实现,这也是很多人将这两者混为一谈的原因。MVVM是更节省的设计模式,能实现双向的数据绑定。
MVVM可以理解成M V VM。其中的M指的是Model层,也就是我们的JavaBean。V指的是VIew层,也就是我们具体的布局,如EditText等。VM指的是ViewModel层,它是Model层和View层的一个桥梁,也用来处理视图逻辑和业务逻辑。
简而言之,M还是Model,V还是View,VM就是ViewModel层。三者的关系大致如下图1所示:
图1
这个架构模式有如下两个特点:
- 降低耦合:一个ViewModel层可以绑定不同的View层,当Model变化时View可以不变。
- 可重用性:可以把一些视图逻辑放在ViewModel层中,让很多View重用这些视图逻辑。
ViewModel相当于model层和View层的一个桥梁,当View层比如说一个EditText的值发生改变了,无需通过Activity