首页
|
MonoRail
|
程序人生
|
休闲
|
专题
|
会员中心
|
技术问题交易中心
当前位置:
主页
>
Asp.Net MVC
>文章内容
MVC结构简介
来源: 作者: 发布时间:2007-10-24
MVC(Model-View-Controller)应用程序结构被用来分析分布式应用程序的特征。这种抽象结构能有助于将应用程序分割成若干逻辑部件,使程序设计变得更加容易。
MVC结构提供了一种按功能对各种对象进行分割的方法(这些对象是用来维护和表现数据的),其目的是为了将各对象间的耦合程度减至最小。MVC结构本来是为了将传统的输入(input)、处理(processing)、输出(output)任务运用到图形化用户交互模型中而设计的。但是,将这些概念运用于基于Web的企业级多层应用领域也是很适合的。
在MVC结构中,模型(Model)代表应用程序的数据(data)和用于控制访问和修改这些数据的业务规则(business rule)。通常模型被用来作为对现实世界中一个处理过程的软件近似,当定义一个模型时,可以采用一般的简单的建模技术。
当模型发生改变时,它会通知视(View),并且为视提供查询模型相关状态的能力。同时,它也为控制器(Controller)提供访问封装在模型内部的应用程序功能的能力。
一个视(View)用来组织模型的内容。它从模型那里获得数据并指定这些数据如何表现。当模型变化时,视负责维持数据表现的一致性。视同时将用户要求告知控制器(Controller)。
控制器(Controller)定义了应用程序的行为;它负责对来自视的用户要求进行解释,并把这些要求映射成相应的行为,这些行为由模型负责实现。在独立运行的GUI客户端,用户要求可能是一些鼠标单击或是菜单选择操作。在一个Web应用程序中,它们的表现形式可能是一些来自客户端的GET或POST的HTTP请求。模型所实现的行为包括处理业务和修改模型的状态。根据用户要求和模型行为的结果,控制器选择一个视作为对用户请求的应答。通常一组相关功能集对应一个控制器。下图描述了一个MVC应用程序中模型、视、控制器三部分的关系:
图中实线表示高耦合的依赖关系,虚线表示低耦合的消息关系。业务模块是不依赖用户界面的,这样就隔离了用户界面的变更对业务程序的影响。用户界面负责收集用户的输入,显示用户需要的数据;控制器负责将用户的请求调用到实际的业务程序,也将业务程序处理的结果回送给用户界面;业务程序具体处理业务操作。同时业务模块可能主动发送消息到用户界面,通知界面显示数据。
在具体的环境下,这些因素可能发生一些变化。比如,在web开发中,由于web应用程序的性质,用户界面是在浏览器上运行的,而界面的控制和业务模块在浏览器上运行,所以在web应用中通常采用这种典型的MVC模式。并且在Web应用中,不存在服务器主动向客户端“推”数据,因此从Model到View之间的虚线也是不存在的。在windows窗体程序中,控制器和界面经常是合并在一起的,比如MFC框架中使用的Document-View模式,其中的Document对应MVC中的Model,负责保存业务数据,处理业务逻辑,View相当于MVC中的View+Controller,负责用户界面的显示、用户输入的收集和画面的跳转控制。
(阅读次数:)
上一篇:
理解MVC
下一篇:
MVC模式评论
[
收藏
] [
推荐
] [
评论(0条)
]
[返回顶部]
[打印本页]
[关闭窗口]
用户名:
(
新注册
) 密码:
匿名评论
评论内容:(不能超过250字,需审核后才会公布,请自觉遵守互联网相关政策法规。
§
最新评论
:
热点文章
·
ASP.NET MVC 框架
·
ASP.NET MVC Framework 动态汇集
·
asp.net mvc的前途如何?
·
ASP.NET MVC Framework CTP版本
·
MVC模式评论
·
Scott Guthrie对一些评语的答复
·
用C#实现MVC(Model View Contro
·
Dot Net设计模式之MVC模式
·
理解MVC
·
ASP.NET 中的设计模式之MVC篇
·
什么是MVC
·
.Net设计模式
相关文章
·
理解MVC
·
MVC模式评论
·
ASP.NET MVC Framework CTP版本
·
什么是MVC
·
ASP.NET MVC 框架
·
ASP.NET MVC Framework 动态汇集
·
asp.net mvc的前途如何?
·
Scott Guthrie对一些评语的答复
·
NClay框架MVC应用入门
·
dotNET MVC 框架哪个更好用?
·
ASP.NET 中的设计模式之MVC篇
·
用C#实现MVC(Model View Contro
Asp.Net MVC
版权所有——专注于Asp.Net平台下的MVC框架研究