MVC
模型-视图-控制器(MVC)是Xerox PARC在八十年代为编程语言Smalltalk-80发明的一种软件设计模式,至今已被广泛使用。最近几年被推荐为Sun公司J2EE平台的设计模式,并且受到越来越多的使用 ColdFusion 和 PHP 的开发者的欢迎。模型-视图-控制器模式是一个有用的工具箱,它有很多好处,但也有一些缺点。
控制器- 程序员编写程序应有的功能(实现算法等等)
视图 - 界面设计人员进行图形界面设计
模型 - 数据库专家进行数据管理和数据库设计
层次
模型(Model)
“数据模型”(Model)用于封装与应用程序的业务逻辑相关的数据以及对数据的处理方法。“模型”有对数据直接访问的权利,例如对数据库的访问。“模型”不依赖“视图”和“控制器”,也就是说,模型不关心它会被如何显示或是如何被操作。但是模型中数据的变化一般会通过一种刷新机制被公布。为了实现这种机制,那些用于监视此模型的视图必须事先在此模型上注册,从而,视图可以了解在数据模型上发生的改变。
视图(View)
视图层能够实现数据有目的的显示(理论上,这不是必需的)。在视图中一般没有程序上的逻辑。为了实现视图上的刷新功能,视图需要访问它监视的数据模型(Model),因此应该事先在被它监视的数据那里注册。
控制器(Controller)
控制器起到不同层面间的组织作用,用于控制应用程序的流程。它处理事件并作出响应。“事件”包括用户的行为和数据模型上的改变。
实现
Java 平台企业版 (J2EE)
和其他的各种框架不一样,J2EE为模型对象(Model Objects)定义了一个规范。
ASP.NET
在ASP.NET中,针对视图(View)和控制器(Controller)的模式没有被很好地定义。而模型(Model)则留给开发者去设计。
视图(View)
ASPX和ASCX文件被用来处理视图的职责。在这个设计中视图实际上是从控制器继承而来。这个和Smalltalk的实施有所不同,在Smalltalk中不同的类都有指针互相指向对方。
控制器(Controller)
控制器的职责被分割成两部分。事件(Event)的产生和传输是框架的一部分,更明确的说是Page和Control两个类。而事件的处理则在分离的代码中实现。
模型(Model)
ASP.NET 不严格需要一个模型。开发者可以自行选择创建一个模型类,但是很多人选择放弃这一步,直接把事件处理放在控制器里处理任何计算、数据保存等等。但用模型来包含商业逻辑和数据存取是可实现的。
Windows Forms
在WinForms中,这个针对视图(View)和控制器(Controller)的模式已经很好的定义好的。而模型(Model)则留给开发者去设计。
视图(View)
由Form或者Control类继承来的一个类处理视图的职责。在WinForm这个例子中视图和控制器被编译在同一个类中,这个和ASP.NET不同。
控制器(Controller)
控制器的职责被分割成三部分。事件(Event)的产生和传输是操作系统的一部分。在.Net框架中Form和Control类将不同的事件转发给相应的事件处理器。而事件的处理则在分离的代码中实现。
模型(Model)
就像ASP.NET一样,WinForm不严格需要一个模型。开发者可以自行选择创建一个模型类,但是很多人选择放弃这一步,直接把事件处理放在控制器里处理任何计算、数据保存等等。也就是说用模型来包含商业逻辑和数据存取。
Ruby
Ruby on Rails是透过Ruby语言所开发出來的Web Framework,也是采用Model-View-Controller架构。
Python
Python 有許多的 MVC 架构。最常用的有 Django 和 TurboGears。
视图(View)
在J2EE应用程序中,视图(View)可能由Java Server Page(JSP)承担。生成视图的代码则可能是一个servlet的一部分,特别是在客户端服务端交互的时候。
控制器(Controller)
J2EE应用中,控制器可能是一个servlet。
模型(Model)
模型则是由一个实体Bean来实现。
分享到:
相关推荐
ASP.NET MVC作为微软官方的.NET平台下MVC解决方案,自诞生起就吸引了众多.NET平台开发人员的眼球。ASP.NET MVC从一开始的设计思路就与Struts不同,它的映射是利用路由配置而非xml,从而大大降低了开发复杂度,并且比...
Spring MVC属于SpringFrameWork的后续产品,已经融合在Spring Web Flow里面。Spring 框架提供了构建 Web 应用程序的全功能 MVC 模块。Spring MVC4是当前zuixin的版本,在众多特性上有了进一步的提升。, 在精通Spring...
**MVC(Model-View-Controller)模式是软件开发中的一种设计模式,尤其在Web应用开发中被广泛应用。C#是Microsoft开发的一种面向对象的编程语言,它与.NET框架紧密结合,支持构建各种类型的应用,包括MVC应用。在这...
ASP.NET MVC5是一个基于微软.NET Framework的开源web应用程序框架,专为构建动态、数据驱动的Web应用程序而设计。它结合了Model-View-Controller(MVC)设计模式、ASP.NET的功能性和HTML5的能力,提供了更高效、灵活...
**MVC模式与Servlet、JSP的协同工作** 在Web应用开发中,Model-View-Controller(MVC)模式是一种广泛采用的设计模式,它将应用程序的业务逻辑、数据和用户界面分离,使得开发和维护更加方便。在这个"经典MVC登录...
C# MVC(Model-View-Controller)经典框架是基于微软.NET平台的一种强大的Web应用程序开发模式。这个框架结合了MVC设计模式的灵活性和C#语言的强类型特性,为开发者提供了构建可维护、高性能和高度分层的Web应用的...
*** MVC 4是一个用于构建可扩展、基于标准的Web应用程序的框架,它使用了众所周知的设计模式,并且充分利用了***和.NET框架的强大功能。*** MVC框架允许开发者使用模型-视图-控制器(Model-View-Controller, MVC)...
MVC2.0入门必读教程程序源码 前言 ASP.NET MVC作为微软官方的MVC解决方案,推出有一段时间了。可以说自动推出以来,一直广受关注。在经历了漫长的Preview之后,前几天终于推出了其beta版。并且在官方文档中,微软...
标题 "PureMVC 中文版" 指的是 PureMVC 框架的一个中文版本,这是一款广泛应用的开源框架,特别设计用于构建富互联网应用程序(RIA),尤其是基于Adobe Flex和ActionScript 3的项目。PureMVC 提供了一种模块化、结构...
ASP.NET MVC是一个强大的框架,用于构建可维护性和灵活性极高的Web应用程序。它是Microsoft为开发者提供的一种基于模型-视图-控制器(MVC)设计模式的工具,使得开发人员能够更清晰地分离业务逻辑、数据处理和用户...
**ASP.NET MVC 5 框架详解** ASP.NET MVC 5 是 Microsoft 推出的一款用于构建可伸缩、高性能的 Web 应用程序的框架,它基于模型-视图-控制器(MVC)设计模式,结合了ASP.NET Web Forms 和 ASP.NET Web API 的优势,...
ASP.NET MVC4(Model-View-Controller)是微软推出的一款用于构建动态网站的开源框架,它基于ASP.NET平台,提供了一种分离关注点、结构清晰的开发模式。在这个"ASP.NET MVC4 安装文件"中,包含了适用于Visual Studio...
ASP.NET MVC4 CMS 是一个基于微软的ASP.NET MVC4框架构建的内容管理系统,它提供了一种高效、可扩展的方式来管理和展示网站内容。MVC(Model-View-Controller)设计模式是其核心,它将应用程序分为三个主要组件:...
ASP.NET MVC是一个强大的Web应用程序开发框架,由微软公司推出,用于构建可维护、高性能和具有优秀用户体验的Web应用。在本“asp.net mvc博客Blog源码”项目中,我们可以深入学习和理解ASP.NET MVC的核心概念和技术...
在IT行业中,MVC(Model-View-Controller)是一种广泛应用于软件开发的架构模式,尤其在Web应用领域中。这个模式将应用程序分为三个主要部分,每个部分都有明确的责任,从而提高了代码的可维护性和可扩展性。本项目...
**ASP.NET MVC 框架详解** ASP.NET MVC(Model-View-Controller)是一种轻量级、基于组件的Web应用程序架构,它由微软开发并应用于.NET Framework中,为开发者提供了构建可测试、灵活且易于维护的Web应用的强大工具...
ASP.NET MVC5 是微软开发的一款用于构建动态网站的框架,它结合了模型-视图-控制器(MVC)设计模式,使开发者能够更高效地构建可维护和测试的Web应用程序。在本入门教程中,我们将重点探讨如何在ASP.NET MVC5中实现...
ASP.NET MVC 是微软开发的一款用于构建动态Web应用程序的框架,它结合了ASP.NET的优势和Model-View-Controller(MVC)设计模式的灵活性。在这个"ASP.NET MVC 项目集合.zip"压缩包中,可能包含了多个ASP.NET MVC项目...
这个jar文件包含Spring MVC框架相关的所有类。 包含国际化、标签、Theme、视图展现的FreeMarker、JasperReports、Tiles、Velocity、XSLT相关类。 当然,如果你的应用使用了独立的MVC框架,则无需这个JAR文件里的...