对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提供了很多运算符表达式让它可以实现很多负责的业务逻辑。
相关文章推荐
- android 字符串工具类 格式化日期字符串 拼接数组 判断字符串是否为空 转换时间显示 转换文件大小 获取中英文字符个数
- Android 之问题集锦
- Android之Matrix的用法
- Android 65535解决方法
- Android中ViewPager组件的基本用法及实现图片切换的示例
- Android内存泄漏
- android 系统版本信息工具类 获取设备型号 设置屏幕亮度 软键盘 获取屏幕高度宽度
- Android自动化构建之Ant多渠道打包实践(上)
- 谷歌I/O大会宣布开放注册发布预览版Android N七大新特性
- Android WiFi 经常掉线出现的几个原因分析!
- Android SharedPreferences工具类
- Android Fragment基本信息
- Android数据库之Realm快速入门教程
- android 学习RxJava+Retrofit的资料
- android源码解析之(六)-->Log
- 详解Android中ViewPager的PagerTabStrip子控件的用法
- android 加密:数字证书
- android实现log日志输出
- Android4.4修改蓝牙设备默认名称
- android:process的最大的坑