美文网首页
MVVM归纳总结

MVVM归纳总结

作者: 木溪bo | 来源:发表于2022-03-25 11:47 被阅读0次

MVVM是Model-View-ViewModel的缩写。是谷歌推出的AAC(Android Architccture Components)中的组件实现的官方项目框架。主要使用LiveData,ViewModel,DataBinding打造MVVM框架,其他组件是附加的功能。

1、LifeCycle:主要是让自定义类继承它,通过在四大主件和application中绑定后,通过在LifeCycle它的子类中对自定义的方法加上生命周期注解后,实现对它父组件的生命周期进行监听。避免父组件destory销毁后,还无法释放内存,造成内存泄露。

2、LiveData:主要用于给数据套壳包裹,使数据带有观察者模式特性。当数据变化时,会回调的到该数据的监听方法中。LiveData一般就是与ViewModel结合,对ViewModel里面的数据套壳,对数据监听。还会与Room新数据库组件搭配使用,监听数据库数据变化。

3、ViewModel:类似于实现了数据持久化的一个类,继承于它的子类不用担心页面重建而丢失数据,会被保存,除非页面destory了。在里面也可以实现业务逻辑的处理。

4、Model:之前开发中习惯的Bean功能类,存储数据的数据模型。

5、View:与MVC区别于分离了activity,特指我们看的见的UI布局。

6、DataBinding:不与LifeCycle和ViewModel使用,只是实现数据绑定,可单向也可双向。要使用Databinding那应该是使用DataBinding+ViewModel+LiveData,三者缺一不可。双向绑定使用在特定的控件如输入型的EditText、CheckBox上,直接在XML布局中调用Model类中方法的notifyPropertyChanged(BR.xxx)刷新数据。可以自定义图片额外属性BindingAdapter类,设置网络图片背景加载功能等。DataBinding设置的对象变量在于视图View控件绑定后,变量改变了则视图View控件的值也会一起变,有点类似LiveData监听了。

7、ViewBinding:ViewBinding只是为了替代findViewById。涉及数据绑定还是要用DataBinding。相较于DataBinding的区别 ViewBinding 的功能好像更少无法进行双向绑定。但是它的优点也是明显的不需要对原有的xml 文件进行侵入,而Databinding 首先是侵入式的。

mvvp组件
image.png
image.png

8、Room:谷歌官方退出的类似于GreenDao的数据库操作库。注意Model里面如果有内部类,需要定义为静态内部类。
如下:UserInfoBean.DataBean是个静态内部类。

 @Dao
public interface UserInfoDao {
    // OnConflictStrategy.REPLACE:冲突策略是取代旧数据同时继续事务。这个模式数据取代了,并且
    // 如果使用livedata则会返回一个新的对象,原livedata监听的对象就会监听到一个null对象。事实测试证明了,只要
    //保持主键的数据不被替换取代,原livedata对象就不会为null。
    // OnConflictStrategy.ROLLBACK:冲突策略是回滚事务
    //OnConflictStrategy.ABORT:冲突策略是终止事务。
    //OnConflictStrategy.FAIL:冲突策略是事务失败。
    //OnConflictStrategy.IGNORE:冲突策略是忽略冲突。
    @Insert(onConflict = OnConflictStrategy.REPLACE)
    void insertUserinfo(UserInfoBean.DataBean userInfoBean);

    @Delete
    void deleteUserinfo(UserInfoBean.DataBean userInfoBean);

    @Update
    void updateUserinfo(UserInfoBean.DataBean userInfoBean);

    @Query("Select * from myUserInfo where id=:id")
    LiveData<UserInfoBean.DataBean> getUserinfoById(String id);
}
妥妥的很安卓

相关文章

  • MVVM归纳总结

    MVVM是Model-View-ViewModel的缩写。是谷歌推出的AAC(Android Architcctu...

  • MVC,MVP,MVVM归纳

    MVC M:model (模型,用于处理应用程序数据逻辑部分。如数据处理,mySQL数据库处理)V:layout,...

  • iOS MVVM架构总结

    参考:iOS 中MVC设计模式iOS MVVM架构iOS MVVM-框架介绍iOS 架构模式MVVM的实践总结iO...

  • 总结归纳

    我发现我一开始做总结的工作就开心起来。

  • 总结归纳

    今天早上听书就听到归纳两个字,开早会时珊首席也提到了总结归纳。 想想自己来赢家这么久了,有哪些时候真正做到了总结归...

  • 归纳&总结

    机器学习技能树整理 按问题类型划分 分类问题 Logistic Regression 总结:特征的线性组合+非线性...

  • 归纳总结

    准备要去买车,才了解到原来车还分为这么多的级别 国内一般把A00级、A0级、A级、B级、C级、D级称为 微型车、小...

  • 总结归纳

    总结归纳,是我们可以练习的理清做事逻辑,让头脑变清晰的一种技巧。 总结归纳,是一种意识,世间事物看得多了,独自做了...

  • MVVM总结

    MVVM:将所有的表示逻辑放到ViewModel中,Model 数据转换为 View 可以呈现的东西(在开发中表现...

  • 运营分会场第六组-分舵运营如何实现/体现拆书帮宗旨、愿景和价值观

    duang duang duang,请看~~~ 图片版(归纳总结): 文字版(归纳总结): 主题:分舵运营如何实现...

网友评论

      本文标题:MVVM归纳总结

      本文链接:https://www.haomeiwen.com/subject/otiwdrtx.html