美文网首页
android mvvm思想

android mvvm思想

作者: 泓汉 | 来源:发表于2020-04-20 16:57 被阅读0次

    mvvm和MVP比较大的区别是:vm和v是单向引用, 只有activity持有vm引用,vm是不持有view的引用的,所以vm的构造方法中不能传入视图相关的对象。

    数据驱动。在常规的开发模式中,数据变化需要更新UI的时候,需要先获取UI控件的引用,然后再更新UI。 获取用户的输入和操作也需要通过UI控件的引用。在MVVM中,这些都是通过数据驱动来自动完成的, 数据变化后会自动更新UI,UI的改变也能自动反馈到数据层,数据成为主导因素。这样MVVM层在业务逻辑处理中只要关心数据,不需要直接和UI打交道,在业务处理过程中简单方便很多。

    在之前DataBinding的学习中,当然也包括网上大部分关于mvvm和databinding的教程中,都是在xml中引入很多变量,然后把这些变量的数据和控件绑定在一起,这样xml的可读性非常差。

    m -> model     v->view      vm -> viewmodel

    1.View层就是展示数据的,以及接收到用户的操作传递给viewModel层,通过dataBinding实现数据与view的单向绑定或双向绑定

    2.Model层最重要的作用就是获取数据了,当然不止于此,model层将结果通过接口的形式传递给viewModel层

    3.ViewModel 层通过调用model层获取数据,以及业务逻辑的处理。

    4.mvvm中 viewModel 和MVP中的presenter 的作用类似 ,只不过是通过 databinding 将数据与ui进行了绑定。

    model数据层,除了数据的获取还得与viewmodel层进行数据交互,viewmodel(vm)相当于mvp中的p层,处理逻辑,model层还需通过

    databing,与view层的空间进行绑定。

    Databinding布局

    data 标签的作用就像一个桥梁搭建了 View 和 Model 之间的通道

    Observable  -> 观察者

    databinding支持双向绑定以及单向绑定,单向绑定主要用model与view的连接,即数据发生变化的时候,会自动更新view的数据,view的视图

    发生变化,同时也更新model的数据,这就是双向绑定

    相关文章

      网友评论

          本文标题:android mvvm思想

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