MVC 编程模型及其变种
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模式了
- 用户点击屏幕, 传递一个点击事件给视图
- 视图把点击事件传递给控制器
- 控制器调用模型
- 模型运行逻辑
- 模型通知控制器,并返回数据
- 控制器接到数据后返回给视图
- 视图展示新数据
事实上,折腾这些,最后目的是了解边界,因此,人们可以并行工作.
版权声明:本文博主原创文章。博客,未经同意不得转载。
MVC 编程模型及其变种的更多相关文章
- MVC编程模型
		MVC 编程模型 MVC 是三个 ASP.NET 开发模型之一. MVC 是用于构建 web 应用程序的一种框架,使用 MVC (Model View Controller) 设计: Model(模型 ... 
- ASP.NET MVC编程——模型
		1 ViewModel 是一种专门提供给View使用的模型,使用ViewModel的理由是实体或领域模型所包含的属性比View使用的多或少,这种情况下实体或领域模型不适合View使用. 2模型绑定 默 ... 
- MVC笔记之一:MVC编程模型
		MVC是ASPX.NET用于构造Web应用的一种框架,和传统的ASPX.NET开发模式(Web Form)在架构上相同,同样采用三层框架实现,但相比传输开的模式,各层架构更加规范. 传统三层架构: V ... 
- Atitit.web三大编程模型 Web Page    Web Forms 和 MVC
		Atitit.web三大编程模型 Web Page Web Forms 和 MVC 1. 编程模型是 Web Forms 和 MVC (Model, View, Controller). 2. ... 
- Atitit.web三编程模型 Web Page    Web Forms 和 MVC
		Atitit.web三编程模型 Web Page Web Forms 和 MVC 1. 编程模型是 Web Forms 和 MVC (Model, View, Controller). 2. W ... 
- ASP.NET Core MVC I/O编程模型
		1. ASP.NET Core MVC I/O编程模型 1.1. I/O编程模型浅析 1.2. 同步阻塞I/O 1.3. 同步非阻塞I/O 1.4. 异步I/O 1.5. 总结 1.1. I/O编程模 ... 
- [.net 面向对象程序设计深入](6).NET MVC 6 —— 模型、视图、控制器、路由等的基本操作
		[.net 面向对象程序设计深入](6).NET MVC 6 —— 模型.视图.控制器.路由等的基本操作 1. 使用Visual Studio 2015创建Web App (1)文件>新建> ... 
- 利用MVC编程模式-开发一个简易记事本app
		学了极客学院一个开发记事本的课程,利用自己对MVC编程模式的简单理解重写了一遍该app. github地址:https://github.com/morningsky/MyNote MVC即,模型(m ... 
- MVC编程模式
		MVC编程模式 MVC 是一种使用 MVC(Model View Controller 模型-视图-控制器)设计创建 Web 应用程序的模式: Model(模型)表示应用程序核心(比如数据库记录列表) ... 
随机推荐
- 重新想象 Windows 8 Store Apps (22) - 文件系统: 访问文件夹和文件, 通过 AQS 搜索本地文件
			原文:重新想象 Windows 8 Store Apps (22) - 文件系统: 访问文件夹和文件, 通过 AQS 搜索本地文件 [源码下载] 重新想象 Windows 8 Store Apps ( ... 
- 玩转Web之servlet(五)---- 怎样解决servlet的线程安全问题
			servlet默认是存在线程安全问题的,但是说白了,servlet的线程安全问题实际上就是多线程的线程安全问题,因为servlet恰巧是一个多线程才会出现安全性问题. 浏览器每次通过http协议去提交 ... 
- HDU 4777 Rabbit Kingdom(树状数组)
			HDU 4777 Rabbit Kingdom 题目链接 题意:给定一些序列.每次询问一个区间,求出这个区间和其它数字都互质的数的个数 #include <cstdio> #include ... 
- c++分割字符串(类似于boost::split)
			由于c++字符串没有split函数,所以字符串分割单词的时候必须自己手写,也相当于自己实现一个split函数吧! 如果需要根据单一字符分割单词,直接用getline读取就好了,很简单 #include ... 
- Reveal:分析iOS UI该武器
			Reveal是分析iOS应用UI的利器: Reveal可以在执行时调试和改动iOS应用程序.它能连接到应用程序,并同意开发人员编辑各种用户界面參数.这反过来会马上反应在程序的UI上.就像用FireBu ... 
- 《数字图像处理原理与实践(MATLAB文本)》书代码Part7
			这篇文章是<数字图像处理原理与实践(MATLAB文本)>一本书的代码系列Part7(由于调整先前宣布订单,请读者注意分页程序,而不仅仅是基于标题数的一系列文章),第一本书特色186经225 ... 
- Linux平台下裸设备的绑定:
			Linux平台下裸设备的绑定: 运用RAW绑定 方法一 raw的配置(1) [root@qs-dmm-rh2 mapper]# cat /etc/rc.local #!/bin/sh # # This ... 
- 有人实践过 Phabricator 以及 Arcanist 作为 code review 的工具么?(转)
			作者:覃超链接:http://www.zhihu.com/question/19977889/answer/13539702来源:知乎 平时就经常实践. 整个公司的code review就是使用这个. ... 
- 综合第一篇文章(带钩Quora)
			watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvdTAxNDc4MzAyNw==/font/5a6L5L2T/fontsize/400/fill/I0JBQk ... 
- 编写ruby扩展库
			# Loads mkmf which is used to make makefiles for Ruby extensions require 'mkmf' # Give it a name ext ... 
