MVC 编程模型及其变种
2024-10-12 05:21:26
MVC 编程模型及其变种
MVC全称是Model View Controller, 这是一个模型(model)-查看(view)-调节器(controller)缩写,这是通过通用的编程模型非.MVC当为了分离数据和视图首次提出,数据和实体之间的关系.这就是关注点分离的设计理念,也是单一职责原则(Single-Resposibility Principle).
在我们的开发过程中, 视图用来展现界面, 我们的模型处理业务, 持有数据, 而控制器是他们之间的中间人.
GoF四人组觉得MVC是"一组用于构建用户界面的类的集合,是其他三个经典的设计模式的演变:观察者模式, 策略模式, 组合模式".详细的实现可能还会用到工厂模式,装饰器模式
以下介绍一下MVC及其变种
VC模式(view --> controller)
这样的模式用于简单的界面,代码量不多的情况.一般业务代码都是控制器里.
- 用户点击屏幕,传递一个点击事件给视图
- 视图把点击事件传递给控制器
- 控制器运行逻辑
- 控制器把新的数据返回给视图
- 视图展示新的数据给用户
VMC模式(view --> model --> controller)
这样的模式以下,视图先传递的对象是模型,模型能处理的话,根本就不通知控制器,能够减轻控制器的代码量
- 用户点击屏幕, 传递一个点击事件给视图
- 视图把点击事件传递给模型
- 模型处理点击事件
- 模型处理不了的和额外要处理的发消息给控制器
- 控制器运行逻辑
- 控制器把数据返回给模型
- 模型再把数据返回给视图
- 视图展示新的数据给用户
VCM模式(view --> controller --> model)
这样的就是我们最常见的mvc模式了
- 用户点击屏幕, 传递一个点击事件给视图
- 视图把点击事件传递给控制器
- 控制器调用模型
- 模型运行逻辑
- 模型通知控制器,并返回数据
- 控制器接到数据后返回给视图
- 视图展示新数据
事实上,折腾这些,最后目的是了解边界,因此,人们可以并行工作.
版权声明:本文博主原创文章。博客,未经同意不得转载。
最新文章
- Oracle插入日期格式出现 ORA-01843: not a valid month的解决办法
- &;#65279; 非法字符 原因 以及解决办法
- [转载] 数据库分析手记 —— InnoDB锁机制分析
- 微软TechEd2013大会门票热卖!
- python3爬虫初探(三)之正则表达式
- matio使用
- CentOS6.5配置vim使支持Python
- POJ 3614 Sunscreen 优先队列 贪心
- Black Box《优先队列》
- Java输入输出流(转载)
- ACM做题过程中的一些小技巧
- Demo4
- SlidingMenu的使用详解
- Python3:字符串的大小写和镜像字符串(swapcase()函数,chr(),ord(),translate()函数)
- xshell 使用root 连接ubuntu server
- 30天代码day2 Operators
- 【XSY1551】往事 广义后缀数组 线段树合并
- --HTML标签2
- golang的urlrouter
- 使用Git下载Hadoop的到本地Eclipse开发环境
热门文章
- 2.大约QT数据库操作,简单的数据库连接操作,增删改查数据库,QSqlTableModel和QTableView,事务性操作,大约QItemDelegate 代理
- Android访问服务器(TOMCAT)乱码引发的问题
- sql 添加用户
- ComboBox 自动调整组合框下拉部分的宽度
- mysql声明摘要
- Android SharedPreferences复杂的存储
- 我学cocos2d-x (两) 采用Delegate(信托)
- Redis源代码分析(二十八)--- object创建和释放redisObject物
- HSV 量化
- 恢复SQLServer实例连接