Android 的MVVM、databinding、 liveData 概念

随着前端的兴起,各种框架称出不穷,angular、react、vue 都支持数据双向绑定,Android 也不会落后,如今最火热MVVM 模式就是支持数据双向绑定的。

以上是转换databindding的快捷方法描述
该方法可以转换data binding 布局,自动生成layout data 布局。
Model
这里需要引入一个新概念 LiveData ,其中 T 是你的JavaBean 也就是需要显示到 XML 里面的数据
这就是一个LiveData
Android 的MVVM、databinding、 liveData 概念_第1张图片

Model层就是职责数据的存储、读取网络数据、操作数据库数据以及I/O,一般会有一个ViewModel对象来调用获取这一部分的数据。

View
View层做的仅仅和UI相关的工作,我们只在XML、Activity、Fragment写View层的代码,View层不做和业务相关的事,也就是我们的Activity 不写和业务逻辑相关代码,一般Activity不写更新UI的代码,如果非得要写,那更新的UI必须和业务逻辑和数据是没有关系的,只是单纯UI逻辑来更新UI,比如:滑动时头部颜色渐变、editttext根据输入内容显示隐藏等,简单的说:View层不做任何业务逻辑、不涉及操作数据、不处理数据、UI和数据严格的分开

ViewModel
ViewModel 只做和业务逻辑和业务数据相关的事,不做任何和UI、控件相关的事,ViewModel 层不会持有任何控件的引用,更不会在ViewModel中通过UI控件的引用去做更新UI的事情。ViewModel就是专注于业务的逻辑处理,操作的也都是对数据进行操作,这些个数据源绑定在相应的控件上会自动去更改UI,开发者不需要关心更新UI的事情。

其中 ViewModel 持有 mode对象(数据提供者) 和 View对象(只做Toast,对话框显示,不需要了解view 里面有哪些控件,也不会绑定事件等)

而刷新数据只需要使用 LiveData.value = 新数据

你可能感兴趣的:(Android 的MVVM、databinding、 liveData 概念)