梳理MVC 架构 MVVM架构
MVC 流程图
MVC 是 Model-View-Controller 的简写。MVC 主要有三层:
- Model 数据层,读写数据,保存 App 状态
- View 页面层,和用户交互,向用户显示页面,反馈用户行为
- ViewController 逻辑层,更新数据,或者页面,处理业务逻辑
MVC 可以帮助你很好的将数据,页面,逻辑的代码分离开来。使得每一层相对独立。这样你就能够将一些可复用的功能抽离出来,化繁为简。只不过,一旦 App 的交互变复杂,你就会发现 ViewController 将变得十分臃肿。大量代码被添加到控制器中,使得控制器负担过重。此时,你就需要想办法将控制器里面的代码进一步地分离出来,对 APP 进行重新分层。而 MVVM 就是一种进阶的分层方案。
MVVM 流程图
MVVM 和 MVC 十分相识。只不过他的分层更加详细:
- Model 数据层,读写数据,保存 App 状态
- View 页面层,提供用户输入行为,并且显示输出状态
- ViewModel 逻辑层,它将用户输入行为,转换成输出状态
- ViewController 主要负责数据绑定
没错,ViewModel 现在是逻辑层,而控制器只需要负责数据绑定。如此一来控制器的负担就减轻了许多。并且 ViewModel 与控制器以及页面相独立。tuan
梳理MVC 架构 MVVM架构相关推荐
- MVC及MVVM架构
MVC (Model View Controller) 架构:模型-视图-控制器模式 模型(Model):负责存储系统的中心数据 视图(View):将信息显示给用户 控制器(Controller):处 ...
- mvvm模式和mvc的区别_Android 开发中的架构模式 -- MVC / MVP / MVVM
预备知识 了解 Android 基本开发 看完本文可以达到什么程度 了解如何分析一个架构模式 掌握 MVC,MVP,MVVM 架构定义和实现 更多面试内容,面试专题,flutter视频 全套,音视频从 ...
- iOS-【转载】架构模式 - 简述 MVC, MVP, MVVM 和 VIPER
看了很多篇关于 iOS 架构模式的,尤其是关于 MVVM 的,都是似懂非懂,无意看见了这篇,发现总结的很到位,很用心,特转载至此,如果英语好,请看原文 iOS Architecture Pattern ...
- iOS-【转载】架构模式 - 简述 MVC, MVP, MVVM 和 VIPER (译)
看了很多篇关于 iOS 架构模式的,尤其是关于 MVVM 的,都是似懂非懂,无意看见了这篇,发现总结的很到位,很用心,特转载至此,如果英语好,请看原文 iOS Architecture Pattern ...
- iOS 架构模式 - 简述 MVC, MVP, MVVM
Make everything as simple as possible, but not simpler - Albert Einstein,把每件事,做简单到极致,但又不过于简单 - 阿尔伯特· ...
- iOS 架构模式 - 简述 MVC, MVP, MVVM 和 VIPER (译)
在使用 iOS 的 MVC 时候感觉怪怪的?想要尝试下 MVVM?之前听说过 VIPER,但是又纠结是不是值得去学? 继续阅读,你就会知道上面问题的答案 - 如果读完了还是不知道的话,欢迎留言评论. ...
- [iOS][转]iOS 架构模式 - 简述 MVC, MVP, MVVM 和 VIPER (译)
转自: https://segmentfault.com/a/1190000004680605?ref=myread Make everything as simple as possible, bu ...
- 架构模式:MVC与MVVM
本文探讨如下几个问题: 什么是MVC 什么是MVVM MVC与MVVM对架构属性的影响 MVC实例SpringMVC MVVM实例Vue MVC.MVVM与Layer中的Model,Controlle ...
- 探索从 MVC 到 MVVM + Flux 架构模式的转变
在业务中一般 MVVM 框架一般都会配合上数据状态库(redux, mobx 等)一起使用,本文会通过一个小 demo 来讲述为什么会引人数据状态库. 从 MVC 到 MVVM 模式说起 传统 MVC ...
最新文章
- EF-Linq将查询结果转换为Liststring
- 如何建立和维护自己的“人脉”
- [Freescale]E9学习笔记-LTIB安装配置
- QoS、IPv6、软交换和VoIP技术受质疑
- java tomcat日志中文乱码问题解决
- 网站优化需要团队协作
- JavaScript中null与undefined的比较
- c语言程序转换成单片机语言,单片机编程常用到的类型转换 C语言程序实现
- 如何使用Angular rxjs进行优雅限流
- 使用BigQuery分析GitHub上的C#代码
- FFMPEG设置 cbr讨论
- 怎么看我装的sql能不能用_深入浅出sql优化(三)之单表索引优化
- 明尼苏达计算机科学与工程,明尼苏达大学计算机科学专业排名第29(2020年USNEWS美国排名)...
- SaaS ToB产品的易用性设计2
- 算法实现自动扫雷游戏
- 不同长度的字符串/中文串相似度对比算法
- 如何使用prism进行统计分析(Analysis)?
- Mac pro 连上wifi 5G提示无ip地址
- echarts-锥型柱状图
- PHP八字强弱计算,八字强弱自动计算,在线测试生辰八字强弱