MVC 开发模式
MVC 模式是"Model-View-Controller"的缩写,中文翻译为"模式-视图-控制
器"。MVC 应用程序总是由这三个部分组成。Event(事件)导致 Controller 改变 Model 或
View,或者同时改变两者。只要 Controller 改变了 Models 的数据或者属性,所有依赖
的 View 都会自动更新。类似的,只要 Controller 改变了 View,View 会从潜在的 Model
中获取数据来刷新自己。MVC 模式最早是 smalltalk 语言研究团提出的,应用于用户交
互应用程序中。smalltalk 语言和 java 语言有很多相似性,都是面向对象语言,很自然的
SUN 在 petstore(宠物店)事例应用程序中就推荐 MVC 模式作为开发 Web 应用的架构模
式。MVC 模式是一种架构模式,其实需要其他模式协作完成。在 J2EE 模式目录中,通
常采用 service to worker 模式实现,而 service to worker 模式可由集中控制器模式,派
遣器模式和 Page Helper 模式组成。而 Struts 只实现了 MVC 的 View 和 Controller 两个
部分,Model 部分需要开发者自己来实现,Struts 提供了抽象类 Action 使开发者能将
Model 应用于 Struts 框架中。
MVC 模式是一个复杂的架构模式,其实现也显得非常复杂。但是,我们已经终结出
了很多可靠的设计模式,多种设计模式结合在一起,使 MVC 模式的实现变得相对简单
易行。Views 可以看作一棵树,显然可以用 Composite Pattern 来实现。Views 和
Models 之间的关系可以用 Observer Pattern 体现。Controller 控制 Views 的显示,可以
用 Strategy Pattern 实现。Model 通常是一个调停者,可采用 Mediator Pattern 来实
现。
现在让我们来了解一下 MVC 三个部分在 J2EE 架构中处于什么位置,这样有助于我
们理解 MVC 模式的实现。MVC 与 J2EE 架构的对应关系是:View 处于 Web Tier 或者说
是 Client Tier,通常是 JSP/Servlet,即页面显示部分。Controller 也处于 Web Tier,通
常用 Servlet 来实现,即页面显示的逻辑部分实现。Model 处于 Middle Tier,通常用服
务端的 javaBean 或者 EJB 实现,即业务逻辑部分的实现。
一、MVC 设计思想
MVC 英文即 Model-View-Controller,即把一个应用的输入、处理、输出流程按照
Model、View、Controller 的方式进行分离,这样一个应用被分成三个层——模型层、
视图层、控制层。
视图(View)代表用户交互界面,对于 Web 应用来说,可以概括为 HTML 界面,但
有可能为 XHTML、XML 和 Applet。随着应用的复杂性和规模性,界面的处理也变得具
有挑战性。一个应用可能有很多不同的视图,MVC 设计模式对于视图的处理仅限于视
图上数据的采集和处理,以及用户的请求,而不包括在视图上的业务流程的处理。业务
流程的处理交予模型(Model)处理。比如一个订单的视图只接受来自模型的数据并显示
给用户,以及将用户界面的输入数据和请求传递给控制和模型。
模型(Model):就是业务流程/状态的处理以及业务规则的制定。业务流程的处理过
程对其它层来说是黑箱操作,模型接受视图请求的数据,并返回最终的处理结果。业务
模型的设计可以说是 MVC 最主要的核心。目前流行的 EJB 模型就是一个典型的应用例
评论0
最新资源