除了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的MVVM

M对应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提供了很多运算符表达式让它可以实现很多负责的业务逻辑。

更多相关文章

  1. 理解 Java 的 GC 与 幽灵引用
  2. Android快速集成框架:MVP+Dagger+主流框架
  3. Android定制ListView的界面(使用继承自ArrayAdapter的自定义适配
  4. Android(安卓)greenDao开源数据库框架
  5. [置顶] Android(安卓)开发中Parcel存储类型和数据容器
  6. GreenDao 的简介和使用
  7. 原:Android(安卓)获取屏幕高度、标题高度、状态栏高度详解
  8. Android(安卓)UI开发第三十九篇——Tab界面实现汇总及比较
  9. Android(安卓)的布局优化

随机推荐

  1. android解决坚屏拍照和保存图片旋转90度
  2. 自定义android preference组件
  3. arm-eabi-addr2line工具
  4. Android自定义对话框(Dialog)
  5. Android 实现蓝牙客户端与服务器端通信
  6. 解决EditText不显示光标的三种方法(总结)
  7. Android深入探究-- 实现即时拍照并上传
  8. The logbook of Android(安卓)bug in dai
  9. android复制数据库到SD卡(网上搜集,未经验
  10. Android中通过Intent 调用图片、视频、音