MVC设计模式浅谈

  • 格式:pdf
  • 大小:182.29 KB
  • 文档页数:2

青年与社会2014年12月下 第36期总g582期 

MVC设计模式浅谈 

黄泽寅 于铭汉胡志洪 

(中国计量学院现代科技学院,浙江杭州 310018) 

【摘要】在J2EE企业应用开发中,Mvc设计模式得到了广泛的采用。MVc以其低耦合性、高重用性等特点,简化了软 

件开发的过程,加快了开发进度,并使软件的部署和维护变得相对简单。文章介绍了MVc设计模式的基本概念及工作原理, 

分析了两大主流框架springMVc及struts2的核心流程,并总结了MVc设计模式的优缺点。 

【关键词】MVC;视图;模型;控制器;SpringMVC;Struts 

一、MVC设计模式的基本概念及工作原理 

MVC是基于模型一视图一控制器(Model—View— 

Controller)的软件设计模式,适合构建复杂的应用程序。它 

使应用程序的输入、处理、输出分开,使用MVC模式的应 用程序被分成三个核心部件:视图、模型、控制器,它们各 

自处理自己的任务。 (一)视图(View) 视图是与用户交互的界面,它采集用户输入的数据并传 

递给控制器,或输出控制器中的处理数据给用户。在视图中 没有真正的处理发生,它只是作为一种输出数据并允许用户 

操纵的方式。 (二)控制器(Controller) 

控制器接收用户的输入并调用模型和视图完成用户的需 

求。控制器本身并不输出任何数据及作任何处理,它只是接 收请求并决定调用哪个模型构件去处理请求,然后再确定哪 

个视图显示返回的数据。 (三)模型(Mode1) 模型表示企业数据和业务规则,拥有最多的处理任务。 

模型与数据格式无关,被模型返回的数据是中立的,一个模 

型能为多个视图提供数据。 三者之间的关系如下图所示: 

…~……一 甯壤谰臃 ~~~…一 雅悻 

MVC的处理过程如下: 

首先控制器接收用户请求,并决定由哪个模型来进行处 

理。然后模型根据请求进行相应的业务逻辑处理,并返回数 

据。最后,控制器调用相应的视图格式化模型返回的数据, 

并通过视图呈现给用户。 二、主流框架 对于使用Java语言开发的Web应用程序来说,目前比 

较主流MVC框架有SpringMVC、Struts等。 

(一)SpringMVC Spring MVC是一种基于Java的实现了MVC设计模式的 

轻量级Web框架,使用了MVC设计模式的思想,将web层 进行解耦,大大简化了日常开发。Spring MVC基于请求驱动, 

・236・2014.V0L.582.N0.36 并且使用了前端控制器模式来进行设计,再根据请求映射规 

则分发给相应的页面控制器(动作/处理器进行处理。同时, 

框架支持本地化(Locale)解析、主题(Theme)解析及文 

件上传等;提供了强大的约定大于配置的契约式编程支持。 SpringMVC核心流程如下: 1.用户发送请求,前端控制器DispatcherServlet收到请 

求后自己不进行处理,而是委托给其他的解析器进行处理, 

作为统一访问点,进行全局的流程控制。 

2.DispatcherServlet通过处理器映射HandlerMapping把 请求映射为HandlerExecution Chain对象(包含一个Handler 

处理器对象、多个Handledntercept0r拦截器对象),通过这 

种策略模式,很容易添加新的映射策略。 

3.DispatcherServlet通过处理器适配器HandlerAdapter把 

处理器包装为适配器,从而支持多种类型的处理器。 

4.HandlerAdapter将会根据适配的结果调用真正的 处理器的功能处理方法,完成功能处理;并返回一个 

ModelAndView对象(包含模型数据、逻辑视图名)。 

5.ViewResolver将把ModelAndView对象中的逻辑视图 

名解析为具体的View。 

6.View根据传进来的Model模型数据进行渲染。Model 

实际是一个Map数据结构。 

7.返回控制权给DispatcherServlet,由Dispatchersenrlet 

返回响应给用户,到此一个流程结束。 SpringMVC优势: 

1.角色划分清晰:前端控制器(DispatcherServlet)、 

请求到处理器映射(HandlerMapping)、处理器适配器 (HandlerAdapter)、视图解析器(ViewResolver)、页面控制 器(Controller)、验证器(Validator)、命令对象、表单对象等。 

2.可以和Spring其他框架无缝集成。 

3.可适配,通过HandlerAdapter可以支持任意的类作为 

处理器。 

4.可定制性,HandlerMapping、ViewResolver等能够非 

常简单的定制。 5.功能强大的数据验证、格式化、绑定机制。 

6.本地化、主题的解析的支持,使我们更容易进行国际 

化和主题的切换。 

(二)Struts2 Struts 2是在Struts 1和WebWork的技术基础上进行了 合并的全新的Struts 2框架。其体系结构与Struts 1的体系 结构差别巨大,Struts 2以webwork为核心,采用拦截器的 

机制来处理用户的请求,这样的设计也使得业务逻辑控制 

器能够与ServletAPI完全脱离开,所以Struts 2可以理解为 

WebWork的更新产品。 

Struts 2核心流程如下: 

1.客户端初始化一个指向Servlet容器的请求。

 青年与社会2014年12B下 第36期总第582期 

当前电子健康档案管理建设中存在的问题、制约因素 

及对应的措施和建议 

洪 音 

(上海市嘉定区精神卫生中心,上海201823) 

【摘要】居民电子健康档案系统是医疗卫生体制改革信息化工作的重点内容,是为居民提供服务、为管理者提供决策 

的重要数据源。文章首先阐述了居民电子健康档案工作的现状,然后从电子健康档案管理的作用和意义出发,分析目前电子 

健康档案管理中存在的问题与制约,并提出相应的对策和建议。 【关键词】电子健康档案;管理;问题;对策 

电子健康档案(Electronic HeMth Record,HER)是人们 

在健康相关活动中直接形成的具有保存备查价值的电子化历 

史记录,是面向个人提供服务、具有安全保密性能的终身个 

人健康档案。建立实用共享的卫生信息系统为社区居民提供 

基础诊疗保障的服务,也是新医改提出的工作目标之一。目 

前我国的居民电子健康档案仍处于初步发展阶段,受诸多问 

题制约,并没有完全发挥其应有的职能和价值,现结合自身 

工作实际,讨论一下本人对居民电子健康档案管理工作的一 

些存在的问题、制约因素及对应的措施和建议。 

一、居民电子健康档案的工作现状 

电子健康档案以健康为中心,以生命为主线,是一个人 

从出生到死亡整个过程中健康状况的发展变化情况以及所接 

受的各项卫生服务记录的总和。就电子健康档案的功能而言, 其内容主要包括个人基本情况、全科诊疗档案和预防保健档 

案,两者信息可以互通。就医时患者的健康档案信息可以按 

照有关权限管理规定在任何一所公立医疗机构,及时被主诊 

医务人员所调阅,可以减少不必要的重复用药、检验检查, 

可以提高诊断的准确性,从而达到提高居民健康水平的终极 

目标。 

在我国,居民健康档案的建设和管理已经被列入了基 本公共卫生服务项目,.从2009年开始,逐步在全国统一建 

立居民健康档案,并实施规范管理。按照《卫生部关于规范 

城乡居民健康档案管理的指导意见》(卫妇社发[2009]113 

号)的要求,到2009年底,农村居民健康档案试点建档率 

达到了5%,城市地区居民健康档案建档率达到了30%;到 2011年,农村达到了30%,城市达到了50%。现在的工作 

2.这个请求经过一系列的过滤器(Filter o 

3.F ilterDispatcher被调用,FilterDispatcher询问Action- 

Mapper来决定这个请求是否需要调用某个Action。 

4.如果ActionMapper决定需要调用某个Action, 

FilterDispateher把请求的处理交给ActionProxy。 

5.AetionProxy通过Configuration Manager询问框架 

的配置文件,找到需要调用的Action类,并创建一个 

AetionInvoeation的实例o 6.ActionInvocation例使用命名模式来调用,在调用 

Action的过程前后,涉及到相关拦截器调用。 

7.一旦Action执行完毕,ActionInvoeation负责根据 

struts配置文件中的配置,找到对应的返回结果。 

三、MVC设计模式的优缺点 

(一)通过上面的介绍,我们可以看到MVC设计模式 

具有以下优点 

1.低耦合性。MVC把应用分为三层,因此某些时候只 需改变其中一层就能满足应用的变动。视图层和业务层分离, 

这样就允许视图层代码变动而不用更改模型和控制器代码; 

同样,一个应用的业务流程或者业务规则改变,只需要改动 

模型层代码即可。 

2.高重用性和可维护性。MVC设计模式有多个视图对 

应一个模型的能力。在目前用户需求快速变化的情况下,可 能有多种方式访问应用程序的要求。比如,某个销售管理系 

统可能有本系统订单、网上订单、其他系统订单,虽然订 

购方式和数据展现不一样,但对于订单的处理是一样的。在 

MVC中,一个订单模型对应多个视图即可解决这样的问题。 

这种设计减少了代码的复制和维护量,一旦模型发生改变, 

也易于维护。 3.生命周期成本低。MVC使开发和维护用户接口的技 

术含量降低。 4.有利于软件工程化管理。不同的层各司其职,每一层 

不同的应用具有某些相同的特征,有利于通过工程化、工具 

化管理程序代码。另外,MVC模式使后台程序员集中精力 于业务逻辑,uI程序员集中精力与表现形式上,软件开发 

时间得到相当大的缩减。 

(二)但是,MVC设计模式也存在一些缺点 1.增加系统结构和实现的复杂性。严格遵循MVC,使 

视图、模型、控制器分离,会增加系统结构和实现的复杂性。 

其次,MVC没有明确的定义,内部原理又比较复杂,完全 

理解它具有一定的难度,使用之前需要花费大量时间进行精 

心的计划。因此,MVC设计模式并不适用于中小型的应用 

程序。 

2.视图、控制器间紧密耦合。有些的用户请求都会包含 

一定的业务逻辑和一定的展现逻辑,两种逻辑揉和在一个请 

求里,在处理的时候,视图和控制器很难合理地分工。 

3.视图对模型数据的低效率访问。根据模型操作接口的 

不同,视图可能需要多次调用才能获得足够的显示数据。对 

未变化数据的频繁访问,也将损害操作性能。 

参考文献 【1]杨晓军,秦方.MVC Web:g- ̄学习实录IN].清华大学 

出版社.2011. 。 

【2][美]拉德.深入解析Spring MVC- ̄Web Flow[M].人民 

邮电出版社,2008. 

【3][加]库尼亚瓦.深入浅出Struts 2[M].人民邮电出版社, 

2009 

2014.VOL.582.NO.36・237・