android mvvm流程图,MVVM框架模式详解
MVVM 定义
MVVM 是 Model-View-ViewModel 的缩写,它是一种基于前端开发的架构模式,其核心是提供对 View 和 ViewModel 的双向数据绑定,这使得 ViewModel 的状态改变可以自动传递给 View,即所谓的数据双向绑定。
在 MVVM 的框架下视图和模型是不能直接通信的。它们通过 ViewModel 来通信,ViewModel 通常要实现一个 observer 观察者,当数据发生变化,ViewModel 能够监听到数据的这种变化,然后通知到对应的视图做自动更新,而当用户操作视图,ViewModel 也能监听到视图的变化,然后通知数据做改动,这实际上就实现了数据的双向绑定。并且 MVVM 中的 View 和 ViewModel 可以互相通信。
#MVVM 流程图:
#MVVM 的特点
#1. 低耦合性。
View 可以独立于 Model 变化和修改,一个 ViewModel 可以绑定到不同的 View 上,当 View 变化的时候 Model 不可以不变,当 Model 变化的时候 View 也可以不变。
#2. 可重用性。
把一些视图逻辑放在一个 ViewModel 里面,让很多 View 重用这段视图逻辑,也就是组件化思想。
#3. 独立开发。
开发人员可以专注于业务逻辑和数据的开发(ViewModel),设计人员可以专注于页面设计。
#MVVM 框架模式的好处双向绑定技术,这是 MVVM 思想主打的思想,也是它的最优点
View 的功能进一步的强化,具有控制的部分功能,若想无限增强它的功能,甚至控制器的全部功几乎都可以迁移到各个 View 上(不过这样不可取,那样 View 干了不属于它职责范围的事情)。View 可以像控制器一样具有自己的 View-Model.
由于控制器的功能大都移动到 View 上处理,大大的对控制器进行了瘦身。
可以对 View 或 ViewController 的数据处理部分抽象出来一个函数处理 model。
#MVVM 框架模式的不足数据绑定使得 Bug 很难被调试。界面出现了异常,有可能是 View 的代码有问题,也可能是 Model。
Model 长期持有,不释放内存,就造成了花费更多的内存
数据双向绑定不利于代码重用。客户端开发最常用的重用是 View,但是数据双向绑定技术,让你在一个 View 都绑定了一个 model,不同模块的 model 都不同。那就不能简单重用 View 了。
android mvvm流程图,MVVM框架模式详解相关推荐
- Android Doze and App Standby模式详解
Android Doze and App Standby模式详解 来源:腾云阁 https://www.qcloud.com/community Optimizing for Doze and Ap ...
- android 状态模式,Android编程设计模式之状态模式详解
本文实例讲述了Android编程设计模式之状态模式.分享给大家供大家参考,具体如下: 一.介绍 状态模式中的行为是由状态来决定的,不同的状态下有不同的行为.状态模式和策略模式的结构几乎完全一样,但它们 ...
- java备忘录模式 类图,Android编程设计模式之备忘录模式详解
本文实例讲述了Android编程设计模式之备忘录模式.分享给大家供大家参考,具体如下: 一.介绍 备忘录模式是一种行为模式,该模式用于保存对象当前状态,并且在之后可以再次恢复到此状态,这有点像我们平时 ...
- Android Activity Launch Mode 启动模式详解
简介 android:launchMode 属性能设置 Activity 对象启动时是否使用已有的实例还是多次创建,会使得交互设计更加良好,也能避免很多问题. 它是 Androidmanifest.x ...
- Android UI 测试框架Espresso详解
Android UI 测试框架Espresso详解 1. Espresso测试框架 2.提供Intents Espresso 2.1.安装 2.2.为Espresso配置Gradle构建文件 2.3. ...
- Android 进阶——Framework 核心之Android Storage Access Framework(SAF)存储访问框架机制详解(二)
文章大纲 引言 一.DirectFragment 1.当选中DirectoryFragment中RecyclerView的Item时 2.选中DirectoryFragment中RecyclerVie ...
- Android系统(187)---最易懂的Activity启动模式详解
Android基础:最易懂的Activity启动模式详解 前言 Android基础中,Activity的启动模式非常重要 本文将全面介绍 Activity的启动模式 目录 目录 1. 定义 即Acti ...
- Android 进阶——Framework 核心之Android Storage Access Framework(SAF)存储访问框架机制详解(一)
文章大纲 引言 一.Android Storage Access Framework 二.Storage Access Framework 的主要角色成员 1.Document Provider 文件 ...
- Android M新特性Doze and App Standby模式详解
转载请标明出处:http://blog.csdn.net/xx326664162/article/details/52312122 文章出自:薛瑄的博客 你也可以查看我的其他同类文章,也会让你有一定的 ...
最新文章
- JAVA HashMap单key多value的实现及迭代器打印(附源码)
- c语言建立顺序表 存储并输出,请教数据结构课程中怎么建立顺序表,显示,输出,从头到尾详细点最好加讲解,希望大家能帮这个小忙...
- python 可视化_Python数据可视化
- 【转】WCF请求应答(Request-Reply)、单向操作(One-Way)、回调操作(Call Back)
- 使用decode函数
- [MSDN]Design Guidelines for Developing Class Libraries with .NET Framework 4
- 第四季-专题7-Linux内核链表
- 电力网络故障的计算机算法,电力系统故障分析的计算机算法.pdf
- 【项目】STC15W408AS--烧写、数码管、按键、串口通信、ADC
- 微信表情图像代表什么意思_微信表情含义图解大全(微信58个表情含义图)
- 题目29 英文输入法单词联想
- Elasticsearch实战 | 必要的时候,还得空间换时间!
- 空气质量指数范围对应的类型有哪些?
- MMyolo报错:undefined symbol: _ZN3c105ErrorC2ENS_14SourceLocationESs 的解决方案
- pycharm python interpreter是空的
- indexedDB基本使用(内含案例)
- 小程序真机调试报错: errMsg“:“hideLoading:fail:toast can‘t be found“?
- android xml设置roboto字体,Android:想要为整个应用程序而不是运行时设置自定义字体...
- MSN登陆错误解决方法
- 百度网页移动端html,移动端使用百度分享代码_html/css_WEB-ITnose
热门文章
- Visual Studio 2019 使用 Live Share
- ML.NET 0.8特性简介
- 广州.net俱乐部12月份ABP框架活动场地征集、志愿者征集、合作讲师\副讲师征集...
- 理解 C# 项目 csproj 文件格式的本质和编译流程
- 用Middleware给ASP.NET Core Web API添加自己的授权验证
- java 检测ip网速_java心跳测网速Demo
- [转]vue-codemirror 代码编辑器
- C#趣味程序---水仙花数
- Android之提示Caused by: java.lang.UnsupportedOperationException: Binary XML file line #67: You must sup
- Android之运行PopupWindow提示Unable to add window -- token null is not valid; is your activity running?