知识大全 什么是MVC模式
Posted 状态
篇首语:如果不想在世界上虚度一生,那就要学习一辈子。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 什么是MVC模式相关的知识,希望对你有一定的参考价值。
ASP.NET MVC 4框架揭秘:什么是MVC模式 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!
什么是MVC模式
MVC的创建者是Trygve M H Reenskau 他是挪威的计算机专家 同时也是奥斯陆大学的名誉教授 MVC是他在 年访问施乐帕克研究中心(Xerox Palo Alto Research Center Xerox PARC)期间提出一种主要针对GUI应用的软件架构模式 MVC最初用于SmallTalk Trygve最初对MVC的描述记录在Applications Programming in Smalltalk (TM) How to use Model View Controller (MVC)这篇论文中 有兴趣的读者可以通过地址//st cs illinois edu/ users/smarch/st docs/mvc 阅读这篇论文
MVC体现了关注点分离这一基本的设计方针 它将构成一个人机交互应用涉及的功能分为Model Controller和View三部分 它们各自具有相应的职责
Model是对应用状态和业务功能的封装 我们可以将它理解为同时包含数据和行为的领域模型(Domain Model) Model接受Controller的请求并完成相应的业务处理 在状态改变的时候向View发出相应的通知
View实现可视化界面的呈现并捕捉最终用户的交互操作(比如鼠标和键盘操作)
View捕获到用户交互操作后会直接转发给Controller 后者完成相应的UI逻辑 如果需要涉及业务功能的调用 Controller会直接调用Model 在完成UI处理之后 Controller会根据需要控制原View或者创建新的View对用户交互操作予以响应
图 揭示了MVC模式下Model View和Controller之间的交互 对于传统的MVC模式 很多人认为Controller仅仅是View和Model之间的中介 实则不然 View和Model存在直接的联系 View可以直接调用Model查询其状态信息 当Model状态发生改变的时候 它也可以直接通知View 比如在一个提供股票实时价位的应用中 维护股价信息的Model在股价变化的情况下可以直接通知相关的View改变其显示信息
图 Model View Controller之间的交互
从消息交换模式的角度来讲 Model针对View的状态通知和View针对Controller的用户交互通知都是单向的 我们推荐采用事件机制来实现这两种类型的通知 从设计模式的角度来讲就是采用观察者(Observer)模式通过注册/订阅的方式来实现它们 即View作为Model的观察者通过注册相应的事件来检测状态的改变 而Controller作为View的观察者通过注册相应的事件来处理用户的交互操作
我看到很多人将MVC和所谓的 三层架构 进行比较 其实两者并没有什么可比性 MVC更不是分别对应着UI 业务逻辑和数据存取三个层次 不过两者也不能说完全没有关系 Trygve M H Reenskau当时提出MVC的时候是将其作为构建整个GUI应用的架构模式 这种情况下的Model实际上维护着整个应用的状态并实现了所有的业务逻辑 所以它更多地体现为一个领域模型 而对于多层架构来说(比如我们经常提及的三层架构) MVC是被当成UI呈现层(Presentation Layer)的设计模式 而Model则更多地体现为访问业务层的入口(Gateway) 如果采用面向服务的设计 业务功能被定义成相应服务并通过接口(契约)的形式暴露出来 这里的Model还可以表示成进行服务调用的代理
返回目录 ASP NET MVC 框架揭秘
编辑推荐
Java程序性能优化 让你的Java程序更快 更稳定
cha138/Article/program/net/201311/16131相关参考
JavaMe开发:也说MVC设计模式 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 【问题描
浅析MVC模式与三层架构的区别 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 浅析MVC模式与三
在PHP中使用MVC模式进行开发 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 软件结构发展过程
浅谈三层结构与MVC模式的区别 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 有朋友谈到三层与M
ASP.NET谈三层结构与MVC模式的区别 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 在CS
浅谈ASP.NET开发下的MVC设计模式的实现 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!&nb
一介绍记得初学jsp的时候总喜欢把他和aspphp去比较也习惯于使用asp的开发模式去写jsp后来才发现这真是很傻的做法其实jsp一出了来就已经用MVC模式了下面我就简要说说jsp设计使用MVC来
设计模式:设计自己的MVC框架 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!源代码放在的邮箱的收件
Web开发模式的颠覆者:ASP.NETMVC 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 年月
java开发:Swing是MVC设计的典范 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 不管你