您的位置:首页 > 移动开发 > Android开发

对Android MVVM的理解

2016-03-23 15:16 369 查看
除了MVP,MVVM也是很流行的一种开发模式。在这里总结下我对MVVM的理解。MVVM库android在前段时间推出了Android Data Binding Library这个库,算是官方提供了我们使用MVVM开发Android应用。而之前比较流行的Android MVVM库则是robobinding。MVVM概念MVVM其实就是 Model-View-ViewModel的缩写,据说是由MVP演变而来的数据绑定库。MVVM三部分分别是:Model – 代表你的基本业务逻辑;View – 显示内容;ViewModel – 将前面两者联系在一起的对象;Android的MVVMM对应Bean对象 -- 即MVP中的Model,定义对象和对象的各个属性参数。V对应Activity -- 用来绑定layout布局文件并且为layout布局文件绑定实际数据。VM对应Activity的布局文件layout.xml -- 在layout中使用data标签来引入各种Model或者系统变量(如String),并在正常的布局文件中使用引入的Model对象。Android Data Binding Library实现MVVM的步骤1. 创建一个Model,定义有些什么数据。2. 在layout布局中,最外层套一个<layout>标签,标签内除了布局文件外添加一个<data>标签。3. 在<data>标签内引入各种对象(说白了这些都是空的,都是坑,要Activity去填的)。4. 在布局文件中使用<data>标签引用的对象属性(如TextView的android:text="@{User.name}",就是说引用了data中的User对象的name字段),注意在这个时候data中的东西都是坑,空的。5. 在Activity中使用DataBindingUtil.setContentView(this, R.layout.activity_main);来生成一个Binding对象,并使用这个Binding对象绑定layout中data定义的对象,说白了就是为layout的data引用对象填坑。
这样就实现了数据绑定的功能。
具体实现请参考:全面介绍Android的MVVM框架
总结
Model对象没什么特别的,Activity是为了填数据绑定给layout用。而layout则是从Model获得对象、从Activity获得数据、并实现业务逻辑的处理,
为此,Binding库为layout提供了很多运算符表达式让它可以实现很多负责的业务逻辑。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: