架构之路——MVVM架构模式

1、架构图

在这里插入图片描述

2、每层职责划分

  • Model层

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的事情。

3、实现原理

Databinding实现双向数据绑定,配合solid设计原则以及设计模式来实现MVVM架构

4、关于Databinding及使用

【参考链接】:https://www.jianshu.com/p/53925ccb900e

5、优缺点

  • 解决了mvp中接口庞大,修改复杂的弊端 双向数据绑定。
  • 对bug定位带来困难

demo实战案例,后续补充~~

猜你喜欢

转载自blog.csdn.net/u011084603/article/details/103550003