MVC设计模式中视图层的改进.pdf

上传人:qwe****56 文档编号:69631288 上传时间:2023-01-07 格式:PDF 页数:4 大小:204.65KB
返回 下载 相关 举报
MVC设计模式中视图层的改进.pdf_第1页
第1页 / 共4页
MVC设计模式中视图层的改进.pdf_第2页
第2页 / 共4页
点击查看更多>>
资源描述

《MVC设计模式中视图层的改进.pdf》由会员分享,可在线阅读,更多相关《MVC设计模式中视图层的改进.pdf(4页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、第9 卷第2 2 期2 0 0 9 年1 1 月1 6 7 1 1 8 1 9(2 0 0 9)2 2-6 8 8 8-0 3科学技术与工程S c i e n c eT e c h n o l o g ya n dE n g i n e e r i n gV 0 1 9N o 2 2N o v 2 0 0 9 2 0 0 9S c i T e e h E n g n g M V C 设计模式中视图层的改进王斐(大连交通大学,大连1 1 6 0 5 2)摘要M V C 是一个流行的设计模式,基于这一设计模式的框架也大行其道,然而一直以来,视图层应有的价值都被忽视了。随着A J A x 的复兴,现

2、有W E B 开发模式不能满足用户的需要,现试图改良现有的开发模式,在不改变整体框架结构的基础上,对局部进行调整,以适应新的要求。关键词设计模式模型一视图一控制器异步J a v a S c r i p t 和X M L网络中图法分类号T F 3 9 3 0 9;文献标志码AM V C 是X e r o xP A R C 在2 0 世纪8 0 年代为编程语言S m a l h a l k-8 0 发明的一种软件设计模式,至今已被广泛使用。但是,M V C 在使得系统明晰的同时,也在一定程度上牺牲了用户体验。随着A J A X 应用的增加,现有的设计模式受到了挑战,现试图对现有的M V C设计模式

3、进行改进,以使其适应开发的要求。1M V C 设计模式概述M V C(M o d e l-V i e w-C o n t r o l l e r),即把一个应用按照M o d e l、V i e w、C o n t r o l l e r 的方式进行分离,这样一个应用被分成三层模型层、视图层、控制器层(见图1)。图1M V C(设计模式)理2 0 0 9 年8 月5 日收到第一作者简介:王斐(1 9 8 0 一),男,吉林省通化市,讲师,硕士研究生,研究方向:智能信息系统。1 1 视图层视图(V i e w)代表用户交互界面,M V C 设计模式对于视图的处理仅限于视图上数据的采集和处理,以及

4、用户的请求,不包括在视图上的业务流程的处理。1 2 模型层模型(M o d e l)就是业务流程状态的处理以及业务规则的制定。模型接受视图请求的数据,并返回最终的处理结果。业务模型的设计是M V C 最主要的核心。1 3 控制层控制(C o n t r o l l e r)可以从用户接收请求,将模型与视图匹配在一起,共同完成用户的请求,可将其视为一个分发器,控制层并不做任何的数据处理。2 视图层技术概述现有的W e b 视图层技术按照事件模型所在的位置可以分成两大类,事件模型位于服务器端的和事件模型位于客户端的 2 。2 1 位于服务器端的视图层技术基于H T M L 表单交互的传统的W e

5、b 开发框架,事件模型都位于服务器端,这些框架包括各种W e bM V C 框架(S t r u t s、W e b W o r k、S p r i n gM V C 等等)、J S F、A S P N E T、R o R、以及P H P、P y t h o n 等语言开发 万方数据2 2 期王斐:M V C 设计模式中视图层的改进6 8 8 9的各种W e b 开发框架。特点:用户的事件必须要发送到服务器端来处理。如果它们不与A J A X 或者某种R I A 技术相结合,它们无法提供最佳的响应能力(因为所有的用户事件都需要到服务器端走一趟)。2 2 位于客户端的视图层技术A J A X 和

6、各种其他的R I A 技术,包括微软的W P F 和S m a r tC l i e n t、A d o b e 的A p o l l o 和F l e x、J a v a 的W e bS t a r t、M o z i l l a 的X U L 等等,事件模型都位于客户端。它们与服务器端构成的一种最理想的整体架构是基于R E S T 的W e b 服务(R E S T f u lW e bS e r v-i c e)。在这种架构中,服务器端不存在事件模型,服务器端只提供数据服务,表现逻辑完全位于客户端。3 挑战及模式改进3 1 传统视图层技术的缺点传统的视图层技术,事件模型位于服务器端,它基

7、于请求响应模型。视图层比较简单,只是提供显示格式简单的W E B 页面、链接、提交表单等,而视图层的逻辑则转移到服务供应商能够控制的系统部分一W E B 服务器。很多服务器端的W E B 框架提供一些功能来管理复杂的组合业务逻辑以及单一平台上的表现逻辑口J。传统的应用中有一个前提假设,即:整个W E B应用其逻辑是由一系列的页面迁移构成的。一般来说每一个页面都不是特别复杂,通常有着非常特定的功能和目的(这也是为什么B S 结构有时被称为瘦客户端的原因),页面对于浏览器而言是不可分割的最小单元,要更新页面中的数据必须对页面进行整体刷新。假设要对数据库进行典型的四类操作:增、删、查、改,那么传统的

8、应用至少需要一个查询页面、一个添加页面、一个修改页面;即使将上述页面都合并成一个,那么在一次刷新(提交)中,通常也只能完成上述操作中的一种。想要在一次刷新中同时完成添加一条数据、修改某条记录是不可能的,只能不断地访问相应的页面。这绝对不是良好的客户体验。3 2A J A X 和各种其他的R I A 技术的崛起A J A X 的工作原理相当于在用户和服务器之间加了一个中间层,使用户请求与服务器响应异步化并不是所有的用户请求都交由服务器进行处理,一些简单的数据验证和数据处理则在客户端由引擎处理,只有需要从服务器读取新数据时才由引擎将请求转发给服务器 4 。在这种情况下,同样完成对数据库的增、删、查

9、、改就变成了如图2 所示的模式:查询广一1 l 一竺客廿A J A X恒户引擎端f 飞i 图2M A X 操作模式从图中可以看出,所有的操作结果都将缓存在客户端中,直到编辑都结束后,再经由A J A X 引擎一次性提交到后台,这样做到了刷新次数最少,用户体验比较好。因此是一种目前比较受青睐的技术。3 3M V C 模型的改进。由上一小节分析可知:M A X 实际上推翻了传统W E B 应用的假设(整个W E B 应用其逻辑是由一系列的页面迁移构成的,视图层不含数据,只承担提交数据、显示服务器的响应结果)。在新的应用中,视图层需要承担更多的任务,不再是单纯的等待控制器层推(p u s h)数据,

10、而是要主动从服务器拉(p u l l)数据,因此在视图层,既有内容,又有数据。所以,传统的M V C 模式必须做出某种改变,以适应新的要求。在传统的应用中,请求总是被发给控制器层,并由控制器层负责分配转发给相应的业务处理单元(当然在此过程中要有模型层的参与)。但是在新的应用中,模型层、视图层、控制器层三者的位置有所改变,视图层变得首当其冲,用户的请求将提交给视图层,再经由控制器层将请求与模型层匹配对接,改进后的M V C 设计模式如图3 所示:这样改进后的设计模式在数据持久化和业务逻辑这两层对现行系统并不会有太大的影响,而视 万方数据科学技术与工程9 卷I-IV i e wC o n t r

11、o l l e rM o d e l客1Ir户(视图)(控制器)(模璎)IIII图3 改进后的M V C 设计模式图层却可以解放出来,变得更加丰富,使其符合R I A(R i c hI n t e r n e ta p p l i c a t i o n s)的潮流。4 结论与展望随着技术的发展,视图层的功能和实现技术已经变得越来越复杂,因此传统的M V C 架构必须改进,现指出一种改进的M V C 设计模式。在改进后的设计中,视图层作为联结客户端和服务器端的子系统,不再是传统的“瘦客户端”,它的地位上升至与业务逻辑层和持久化层等同的位置。改进后的视图层里既有对前台用户界面组件的管理,又有对后

12、台M A X 通信的封装,而目前视图层的实现技术虽丰富但是没有形成统一的标准,因此,如何在视图层中引入好的设计模式,推动标准的形成,将是下一步需要研究的问题。参考文献1 孙卫琴精通S t r u t s:基于M V C 的J a v aw e b 设计与开发北京:电子工业出版社,2 0 0 42李锟h t t p:b l o g c s d n n e t m o z i l l a a r c h i v e 2 0 0 7 0 4 0 7 1 5 5 5 6 8 4 a s p x3P r a s a dG S v e n s s o nP h t t p:w w w i n f o q

13、c o r n a r t i c l e s r a t i o n a l i z i n g-p r e s e n t a t i o n-t i e r 2 0 0 8-0 7 4)44 吕林涛,万经华,周红芳基于A J A X 的W E B 无刷新页面快速更新数据方法计算机应用研究,2 0 0 6;(1 1):5 1 5 2R a t i o n a l i z et h eV i e wT i e ro fM V CW A N GF e i(S 硪w a mI n s t i t u t eo fD a l i a nJ i a o t o n gU n i v e r s i

14、t y,D a l i a nI1 6 0 5 2,P R C h i n a)A b s t r a c t M V Ci so n eo ft h ep o p u l a rd e s i g np a t t e r n s,t h e r ea l em a n yf r a m w o r k sb a s e do ni t,b u tt h ev i e wt i e rh a sb e e ni g n o r e df o ral o n gt i m e W i t ht h er e v i v a lo fA J A X,t h ee x i s t i n gd e

15、 v e l o p m e n tm o d e lc a n ts a t i s f yt h eu s e r,t or a t i o n a l i z et h ee x i s t i n gd e s i g np a t t e r ni sa t t e m p e d,w i t h o u tc h a n g i n gt h eo v e r a l lf r a m es t r u c t u r et oa d a p tt on e wr e q u i r e m e n t s K e yw o r d d e s i g np a t t e r nM V CA J A XW E B 万方数据MVC设计模式中视图层的改进MVC设计模式中视图层的改进刊名:科学技术与工程英文刊名:SCIENCE TECHNOLOGY AND ENGINEERING年,卷(期):2009,9(22)参考文献(4条)参考文献(4条)1.吕林涛;万经华;周红芳 基于AJAX的WEB无刷新页面快速更新数据方法期刊论文-计算机应用研究 2006(11)2.Prasad G;Svensson P 查看详情 20083.李锟 查看详情 20074.孙卫琴 精通Struts:基于MVC的Java Web设计与开发 2004 本文链接:http:/

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 应用文书 > 财经金融

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁