引言
mvvm架构是继mvc架构后衍生出的一个新的架构思想,在平时工作过程中很多同学都是把mvvm和dataBinding混为一团,只要被问到什么是mvvm就回答:“mvvm就是dataBinding”。其实这种理解是错的。本文就针对mvvm阐述下个人的理解,有不足支出多多谅解。
一、什么是mvvm
mvvm即 model-viewModel-view 的缩写,view层的布局控件和model层的数据通过中间桥梁viewModel实现双向绑定,而 view和model没有直接的交互,实现了view和model的解耦;它是一种架构思想。
二、什么是dataBinding
dataBinding是一个工具,它是通过Apt技术实现视图与数据源的双向绑定。(并不是大家所理解的用反射的技术实现)
不要把dataBing和mvvm混为一谈了,dataBinding作为一个工具,既可以在mvc中使用也可以在mvp中使用。只是mvvm架构 也使用了dataBing这个工具。
三、mvvm的使用步骤
一,gradle配置
在module下的bulid.gradle的android{}下添加如下配置
// 添加DataBinding依赖
dataBinding{
enabled = true
}
二、在java包下分别建立model和vm包并分别创建两个java类,如下图