(计算机应用技术专业论文)基于mvc设计模式的web开发框架的研究及应用.pdf_第1页
(计算机应用技术专业论文)基于mvc设计模式的web开发框架的研究及应用.pdf_第2页
(计算机应用技术专业论文)基于mvc设计模式的web开发框架的研究及应用.pdf_第3页
(计算机应用技术专业论文)基于mvc设计模式的web开发框架的研究及应用.pdf_第4页
(计算机应用技术专业论文)基于mvc设计模式的web开发框架的研究及应用.pdf_第5页
已阅读5页,还剩56页未读 继续免费阅读

(计算机应用技术专业论文)基于mvc设计模式的web开发框架的研究及应用.pdf.pdf 免费下载

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

重庆邮电大学硕士论文 目录 摘要 在电子商务时代,通过w e b 提供服务和进行业务处理已经成为企业获得竞争 优势的有效方式,许多企业都迫切要求快速、高效的构建自己的w e b 业务系统。 j 2 e e 是s u n 提供的一个标准的企业应用开发平台,它为我们开发企业w e b 应用提 供了丰富的技术选择。然而一个高质量的w e b 应用依赖于设计良好的软件框架的 支持。如何正确应用j 2 e e 核心技术和其它技术来设计和构建一个强健的、具有伸 缩性的、可重用的w e b 应用体系框架是我们所面临的挑战。 m v c 是软件工程学中一个非常重要的设计模式,它的出现为交互式系统的开 发提供了一个非常优秀的模型。m v c 模式对类对象的强制分离使系统开发变得更 加灵活,同时又提高了系统设计的可重用性。正是m v c 模式在交互式系统开发中 所体现出的强大优势,m v c 模式被开发人员逐步引入j 2 e e 体系之中,成为j 2 e e 进行交互式应用开发时,特别是w e b 应用开发时一个非常重要的设计模式。而目 前广泛使用的s m u t s 框架作为m v c 设计模式的一种实现架构,具有m v c 的各种 优点,但也存在着一些缺点和不足。 基于上述理论,论文重点讨论了w e b 应用的框架设计,在s t r u t s 框架的基础 上结合h i b e r n a t e 持久化框架、j s t l 、v e l o c i t y 模板设计了一个基于m v c 设计模 式的整合框架。在该框架中,s t r u t s 作为基础架构实现框架的控制器部分;v e l o c i t y 模板和j s t l 标记来取代原有的j s p 和标签技术构成视图部分;在模型部分,利用 h i b e r n a t e 框架来提供持久层支持。该整合框架是s t r u t s 框架的扩展和改进,框架 中使用了多种设计模式,具有良好的扩展性和可维护性。论文重点分析了该整合 框架的设计原理和关键实现技术。 论文最后,在提出的整合框架的基础上设计开发了一个典型的w e b 应用一网上 数码商店,并给出了该应用的详细设计过程,说明了该框架的可行性。 关键词:w e b 应用,m v c 设计模式,s t r u t s 框架,数据持久化 重庆邮电大学硕士论文 目录 a b s t r a c t i ne l e c t r o n i c - c o m m e r c ee r a , s u p p l i e ss e r v i c e sa n dm a n a g e sb u s i n e s sv i aw e bh a v e a l r e a d yb e c o m et h ee f f e c t i v ew a y t oo b t a i nt h ec o m p e t i t i v ea d v a n t a g e m a n ye n t e r p r i s e s h o p eu r g e n t l yt oc o n s t r u c tt h e i ro w n w e bb u s i n e s ss y s t e m s j 2 e ei sas t a n d a r dp l a t f o r m p r o v i d e db ys u nc o r p o r a t i o n , w h i c hs u p p l i e su sw i m r i c ht e c h n i c a lc h o i c e st od e v e l o p w e b - b a s e de n t e r p r i s ea p p l i c a t i o n ah i g h - q u a l i t ya p p l i c a t i o n , h o w e v e r , d e p e n d so nt h e s u p p o r to f w e l l d e s i g n e di n f i a s t m c t u r e t h e r e f o r e ,h o wt ou s ej 2 e e sc o r et e c h n o l o g i e s t o d e s i g na n dc o n s t r u c tar o b u s t ,s e a l a b l ea n dr e u s a b l ei n f r a s t r u c t u r eo f w e b a p p l i c a t i o nr e m a i n st ob eac h a l l e n g ew em u s tb ef a c e dt o m v ci so r l eo ft h em o s ti m p o r t a n td e s i g np a r e mi nt h es o f t w a r ee n g i n e e r i n g i t p r o v i d e sa l le x c e l l e n td e v e l o p i n gm o d e lf o rd e v e l o p i n gt h ei n t e r a c t i v es y s t e m m v c m o d e sc o m p e l l i n gs e p a r a t i o nc o n t r o lo fd a t af r o mr e p r e s e n t a t i o no fd a t ai nf u n c t i o n e f f e c t i v e l yi m p r o v e sb o t ht h ed e v e l o p i n gf l e x i b i l i t yo f w e ba p p l i c a t i o ns y s t e ma n dt h e r e u s a b l er a t eo ft h es y s t e md e s i g n b e c a u s eo ft h eg r e a ta d v a n t a g eo fm v cd e s i g n p a t t e r ni nd e v e l o p i n gt h ei n t e r a c t i v es y s t e m ,m v cd e s i g np a t t e r nh a sb e e ni n t r o d u c e d i n t oj 2 e ea p p l i c a t i o nd e v e l o p m e n ta n db e c o m e so n eo ft h em o s ti m p o r t a n td e s i g n p a t t e r n s ,p a r t i c u l a r l yi nt h ew e b - b a s e da p p l i c a t i o n s t r u t s ,t h em o s tp o p u l a rf r a m e w o ko f m v c p a t t e r n , n o to n l yh a sm a n ym e r i t so fm v c ,b u ta l s oh a ss o m es h o r t c o m i n g sa n d i n s u 伍c i e n e i e s b a s e do nt h ea b o v e - m e n t i o n e dt h e o r i e s ,t h et h e s i sf o c u e so nt h ed e s i g no f f r a m e w o r ki nt h ew e ba p p l i c a t i o ns y s t e m a ni n t e g r a t e df r a m e w o r kb a s e do nm v c d e s i g np a t t e r nh a v eb e e nd e s i g n e db yi n t e g r a t i n gh i b e r n a t e ,j s t l ,v e l o c i t yi n t os t r u t s i nt h i si n t e g r a t e df r a m e w o r k , s t r u t si m p l e m e n t sc o n t r o l l e r ;v e l o c i t yt e m p l a t ea n dj s t l t a gi m p l e m e n t sv i e w ;h i b e r n a t es u p p o r td a t ap e r s i s t e n c e t h i s f r a m e w o r ki st h e e x t e n s i o na n da m e l i o r a t i o no fs t r u t s ,i ta p p l i e sm a n yd e s i g np a t t e r n s ,i ti se a s i e rt o m a i n t a i na n de x t e n d t h ee m p h a s i so ft h et h e s i si n c l u d e st h ed e s i g np r i n c i p l ea n dk e y t e c h n i q u eo f t h i si n t e g r a t e df r a m e w o r k f i n a l l y , at y p i c a lw e ba p p l i c a t i o n - o n l i n ed i 【g i t a l s t o r eh a sb e e nd e s i g n e da n d i m p l e m e n t e du s i n gt h i sf r a m e w o r ki no r d e r t op r o v et h i sf r a m e w o r k sf e a s i b i l i t y k e yw o r d s :w e ba p p l i c a t i o n ,m v cd e s i g np a t t e r n ,s t r u t sf r a m e w o r k ,d a t ap e r s i s t e n c e i i 独创性声明 本人声明所呈交的学位论文是本人在导师指导下进行的研究工作及取得的 研究成果。据我所知,除了文中特别加以标注和致谢的地方外,论文中不包含其 他人已经发表或撰写过的研究成果,也不包含为获得重庆邮电太堂或其他教 育机构的学位或证书而使用过的材料。与我一同工作的同志对本研究所做的任何 贡献均已在论文中作了明确的说明并表示谢意。 学位论文作者签名: 孙眈辞 签字日期:j 。7 年j 月日 学位论文版权使用授权书 本学位论文作者完全了解重废邮电太堂有关保留、使用学位论文的规 定,有权保留并向国家有关部门或机构送交论文的复印件和磁盘,允许论文被查 阅和借阅。本人授权重废整血太堂可以将学位论文的全部或部分内容编入 有关数据库进行检索,可以采用影印、缩印或扫描等复制手段保存、汇编学位论 文。 ( 保密的学位论文在解密后适用本授权书) 学位论文作者签名:装眈肄 导师签名: 李蟊钐 签字日期: o 哆年5 月知日签字日期:知呷年r 月7 4e t 重庆邮电大学硕士论文 第一章绪论 1 1 课题的研究背景 第一章绪论 近年来,随着网络技术和i n t e m e t 的迅速发展,基于b s 架构的w e b 应用在实 际开发中得到了越来越广泛的应用并在更多的场合被提及,越来越多的人把兴趣 投放到了基于w e b 的应用系统开剔”1 。w e b 应用己经从过去的消息发布等相对静 态的内容显示发展到应用逻辑处理和电子商务等动态信息的处理。 当前情况下商业运作受到w e b 的影响越来越大,许多企业都要求建立自己的 w e b 业务系统或将现有的业务系统改造成w e b 形式,尤其是在电子商务、电子政 务的应用已经成为一个热门领域的情况下。电子商务、电子政务的发展已经对传 统的w e b 技术提出了强有力的挑战。 在开发w e b 应用的过程中,开发人员经常会遇到这样的问题: 1 ) 由于电子商务的内部逻辑复杂、安全性要求苛刻、商务形式发展变化快, 这就要求w e b 业务系统提供足够的复杂度和灵活度以适应电子商务的需求。面对 日益复杂的软件系统开发,传统的开发方法已经无法满足当前企业级和分布式应 用的需要。 2 ) 如何进行系统的框架设计才能更有利于模块化的设计与编码、今后功 能的扩展以及系统快速有效的维护? 3 ) 在每次的系统开发中,我们都需要根据实际应用寻找一个新的解决方 案。为了提高开发的效率,考虑到应用系统的灵活性、安全性、实用性等,就 需要有一个或多个好的设计模式【4 1 。如何采用成熟和先进的设计模式来指导w e b 应用的开发,以此来提高软件可靠性和开发效率也是当前普遍关注的一个问题。 4 ) 目前在w e b 应用开发中普遍采用多层软件体系结构。因此在实际开发过 程中如何尽可能的使各层的开发相对独立,降低各层之间的耦合程度也是当前普 遍关注的问题之一。 5 ) 在面向对象思想成为主流软件开发思想的今天,如何把数据对象持久化到 关系数据库几乎是所有w e b 应用都需要面对的问题。 解决这些问题的关键就是选择或者构造一个具有优良体系结构的w e b 开发 框架。在w e b 应用系统中,w e b 开发框架位于j 2 e e 平台之上,提供w e b 应用系 统共同的操作,例如请求分派、调用商业逻辑和选择视图。w e b 开发框架不仅可 重庆邮电大学硕士论文 第一章绪论 以为w e b 应用系统提供优良的体系结构,提高w e b 应用系统开发的效率,而且可 以节省项目的开发成本、缩短项目的开发周期、降低项目管理的难度和风险、提 升项目和产品的交付质量,使得w e b 应用项目的开发更容易获得成功。 1 2 课题的研究现状 伴随着应用市场要求程度的不断提高和完善,w e b 应用的开发技术也一直在 不断的发展。从早期静态式的w e b 应用架构到目前广泛应用的实时、交互式的w e b 应用架构。 翻开历史,我们可以看到互连网的形成和发展就是以分布性、开放性和平台 无关性为基础的,这是i n t e m e t 与生俱来的属性。随着互连网的发展,又引入了诸 如r p c ( r e m o t ep r o c e d u r ec a l l ,远程过程调用) c o m ( c o m p o n e n to b j e c tm o d e l ,组 件对象模型) c o r b a ( c o m m o no b j e c tr e q u e s tb r o k e r a r c h i t e c t u r e ,公共对象请求代 理体系结构) 等技术,但这些技术在实际应用中又存在诸多不足和局限,它们的特 定协议也很难通过防火墙,因而不适于w e b 上的应用开发【5 刁】。为了进一步开发基 于w e b 的应用,相继出现了m i c r o s o f t 公司的n e t 架构和s u n 公司的j 2 e e 架构两 大w e b 服务技术体系。 n e t 通过称作“网络服务”( w e bs e r v i c e s ) 的技术把分布在互联网上的各种资 源有效地通过编程手段整合在特定的应用接口中。n e t 彻底地把计算模式从单机、 客户机服务器和w e b 网站模式转向分布式计算( d i s t r i b u t e dc o m p u t i n g ) 模式,即把 整个互联网当作是一个计算资源体系来加以利用【8 1 。 j 2 e e 是s u n 公司提出的一种分布式企业级w e b 应用开发的技术架构,它采用 不特定于任何硬件平台和操作系统的编码机制【9 l ,使得基于j 2 e e 架构的w e b 应用 具有跨平台的特性。j 2 e e 架构是一种优良的能够搭建具有可伸缩性、灵活性、易 维护性的w e b 应用系统的软件体系结构,而用j a v a 编程语言设计和实现的w e b 应用程序是可靠的、跨平台的和高性能的b o l 。 j 2 e e 架构相比与n e t 架构有以下一些优势:业界支持、保护现有的r r 资产、 高效的开发、支持异构环境、可伸缩性强、稳定性和可用性等【l ”。因此,采用基 于j 2 e e 平台的技术来开发以应用逻辑为中心的w e b 应用系统,是目前大中型w e b 应用开发中比较先进和合理的技术解决方案【1 2 1 。 尽管j 2 e e 通过使用面向对象技术、组件技术等实现了代码级上的重用,但为 了设计结构良好的企业级分布式应用系统,业界正逐步将设计模式引入到w e b 应 用的开发过程中。 近几年来设计模式已经成为软件项目团体里最热门的话题之一。设计模式是 2 重庆邮电大学硕士论文 第一章绪论 一种问题的解决思路【1 3 】,来自于日常设计开发中的发现和总结,是一种实践的经 验积累。目前对设计模式的研究主要分为利用现有设计模式指导开发、发现新的 设计模式、如何通过对多种模式进行组合以达到最佳使用效果等几个方面。 m v c 是一种设计模式,最近几年被推荐为s u n 公司j 2 e e 平台的设计模式【l ”, 受到越来越多的w e b 开发者的欢迎。利用m v c 设计模式开发w e b 应用,可以将 表现逻辑和业务逻辑分离,构建可复用的软件系统框架,同时简化软件开发,提 高软件性能和可维护性,达到提高软件质量的目的。 从当前情况看,国内外对m v c 设计模式的应用主要分为两方面:w e b 系统中 的应用和g u i ( g r a p h i e a lu s e ri n t e r f a c e ,图形用户界面) 中的应用。而j 2 e e 作为当 前最流行的w e b 应用系统开发平台之一,理所当然,m v c 在j 2 e e 中的研究与应 用具有十分重要的现实意义。 s t r u t s 是由a 口a c h e 软件联盟提供的套用于构建j a v a w e b 应用程序的框架, 它的目标是希望分离w e b 程序的表示层、控制层和后台功能层,也就是实现著名 的m v c 模式,使程序员将更多精力投入后台的业务逻辑设计,而不是底层的w e b 基础架构1 5 1 。s t r u t s 作为一个表现层框架,提供了自己的控制器组件,如何与其它 先进的框架和技术相结合来完成后台模型层并扩展前端视图也是当前的研究热点 之一。 在如今的企业级应用开发环境中,面向对象开发已经成为软件开发技术的主 流,而关系数据库仍然是使用最广泛的数据存储库。将数据对象保存到数据库中, 需要进行对象的持久化。而当前最为广泛使用的持久化工具为采用对象关系映射 原理的h i b e r n a t e 持久化框架。 1 3 研究目的 在软件开发中直接使用被证明是正确的设计模式,可以降低软件风险,提高 软件开发效率。但设计模式并不是单独孤立存在的,它们只有在其它模式的支持 下,才能更加体现其涵义和用处。单个模式提供了其环境、问题和解决方案。模 式的多种组合,能够为问题的解决提供更多有效的方法。 有了好的设计模式,还要选用一个好的框架来指导开发。软件开发者或者重 用已有的框架,或者构造出尽量通用的框架,但软件框架的建立是一个复杂而又 持续改进的过程。 本文的研究目的是希望能够依据m v c 设计模式设计出一种框架,使其能够减 轻开发人员处理复杂问题的负担,使他们专心于业务逻辑上的开发,从而大幅度 提高软件的开发效率和开发质量,达到事半功倍的效果。 重庆邮电大学硕士论文 第一章绪论 本文的另一个研究目的就是如何在实际开发中降低w e b 应用系统中各层次之 间的耦合度,使各层的开发相互独立。 1 4 本文工作 1 ) 对m v c 设计模式、s t r u t s 框架在j 2 e e 平台下的应用进行了深入的理论研 究,分析了s t r u t s 框架开发w e b 应用时存在的缺点和不足; 2 ) 对数据持久化技术、对象关系映射原理、i - l i b e m a t e 持久化框架进行了深 入的理论研究: 3 ) 运用h i b e r n a t e 框架、v e l o c i t y 模板引擎以及j s t l ( j s ps t a n d a r dt a gl i b r a r y , j s p 标准标记库) 对s t r u t s 框架进行改进,并结合多种设计模式来设计个基于m v c 设计模式的w e b 开发框架,通过减少各个层次之间的耦合度,来为w e b 应用提供 更好的支持: 钟依据所设计的框架设计与开发了一个电子商务应用系统。 本文探讨的是一个整合框架的策略( 基于两种目前比较受欢迎的开发框架和其 它技术进行整合) :表示层用s r t u s 和v e l o c i t y ,持久层用h i b e r n a t e ,在此基础上基 于m v c 模式架构,进行一套框架的重组设计,进而来验证在该框架上开发j 2 e e 系统的效率性、重用性和健壮性等指标。通过本文设计的整合框架在满足用户对 界面要求的同时,可以使软件的计算模型独立于界面的构成。该开发模式可以分 离数据访问和数据表现,通过可伸缩性强、便于扩展的控制器,来维护整个流程, 从而大大减轻开发人员的负担和提高系统的维护性。 1 5 论文结构 论文共分六章,其组织框架如图1 1 所示: 4 重庆邮电大学硕士论文第一章绪论 灞一章绪论f 】、研究背景 2 、簪内外相关研究现状 | 3 、研究 l 的 b 、作者的主要工作简介l 豫= 章m v c 设计模式和s 雠d 蓬架 一 一 l 1 、j 2 e e 平台蔺述、核心技术 2 ,m v c 设计模式结构、核心组成模式、忧缺点 3 、s t n a s 框架的机制、m 作流程、优缺点 一一一一一一一一拇一一一一一一一 x奄 i 第三章对象关系跌射艨理和h i b e r n a t e 技术| 1 、数据持久甚和数据持久他的介绍 1 2 、对象关系原理概述 3 、h l b e m a t e 的基本坂理 4 、h i b e r n a t e 的体系结构和核心接口 f 5 、h i b e r n a t e 列持久化数据豹投挣 l 、 j-jl 爿弓一一爿巴一 第鳃章基于m v c 设计模式的h v s 整含框絮 第五章基于h v s 整台框架的应用 、 l 、废用丰睦絮开发的优势 l 、系统背景及业务需求分析 2 、h v s 罄台梃絮概述 2 。系统横块具体实现及购物车结构 3 、框絮中模型、挑圉、控制器的宴现 3 、系统配置、性能、安令 4 、梃颦的j 作流程圉 4 、系统概虢 | 5 、椎架所涉及的设训模式 、 、 一一一刊号一一一一一一一叫巴一一一一 参 第六搴结论及未来的工作 图1 1 论文的组织结构图 5 回团一圃 诗 一 一 、 臣 圃习嘶、| i 匿 重庆邮电大学硕士论文 第二章m v c 设计模式与s t r u t s 框架 第二章m v c 设计模式和s t r u t s 框架 2 1j 2 e e 平台概述 2 1 1j 2 e e 简介 j 2 e e 是j a v a 2 p l a t f o r m e n t e r p r i s e e d i t i o n 的缩写,是s u n 公司提出的一种用于 开发分布式企业级应用程序的技术架构。它提供了一个多层次的分布式应用模型 和一系列开发技术规范,简化了开发大型企业级应用系统的难度i l ”。当前,j 2 e e 平台已经成为开发分布式企业级应用的标准平台之一。 j 2 e e 平台因为具有保护公司投资、进行高效率开发、支持异构环境、较强的 可伸缩性、稳定的可用性等特点,目前已得到了广泛的应用。 2 1 2j 2 e e 体系结构 j 2 e e 平台采用多层分布式应用模型。其体系结构可以分为四层,即客户层、 w e b 层( 通常又称为视图层) 、业务层和企业信息系统层,如图2 1 所示。每个层次 都支持相应的组件。组件是一种具有独立功能的软件单元,组件在分布式服务器 的组件容器中运行,容器间通过相关的协议进行通讯,实现组件间的相互调用旧。 客户层 w e b 层 业务层 企业信息系统层 图2 1j 2 e e 的体系结构 6 重庆邮电大学硕士论文 第二章m v c 设计模式与s t r u t s 框架 客户层:又称为客户端,通常为w e b 浏览器或j a v a 应用程序。浏览器客 户端主要通过h t t p 、h t t p s 等协议实现与w e b 层的通信。 w e b 层:这一层是为基于w e b 的应用程序服务的。主要作用是响应w e b 客户端的请求,接收并检验用户输入的数据,把数据传给业务层的商务逻辑组件, 并把业务层处理的结果返回给用户。 业务逻辑层:它是一个独立的层次。该层次接收w e b 层提供的服务请求 和数据,通过调用企业信息系统层提供的经过加工的数据访问接口和各种资源、 服务组件,内聚地完成表示层委托的业务,修改系统业务数据并将结果反馈给w e b 层。 企业信息系统层:企业信息系统层( e i s ) 包括了各种企业基础设施系统, 例如企业资源计划( e r p ) 、数据库系统等。 这四层中的每个层都是由一组相关的类或组件构成,共同完成特定的功能。 2 i 3j 2 e e 核心技术 j 2 e e 平台包含了许多核心技术。它们互相作用,互为补充,共同搭建起了j 2 e e 企业应用的坚实平台。其主要技术有j d b c ,j n d i ,e j b ,j m s ,j t a ,s e r v l e t 等。 下面我们介绍一下较为常用的几种技术。 1 ) s e r v l e t s e r v l e t 技术提供了生成动态w e b 网页的基本机制。它可以用来扩展w e b 服务 器的功能。s e r v l e t 提供了一种可移植的、独立于平台和w e b 服务器的传递动态内 容的方法。它从客户端接收请求,动态生成一个包含h t m l 或x m l 文档的响应 并返回给客户端。 2 ) j s p ( j a v as e r v e rp a g e s ) j s p 是另一种类型的j 2 e ew e b 组件,它是从s e r v l e t 技术发展起来的。事实上, j s p 脚本可以编译成s e r v l e t 。两者间最大的不同是j s p 并不是纯j a v a 代码,它允 许将复杂的j a v a 代码嵌入到h t m l 或者x m l 文档中,它注重解决客户端的外表 和显示问题。j s p 技术可以提供与s e r v l e t 相同的功能【1 8 】。 3 ) j d b c ( j a v ad a t a b a s ec o n n e c t i o n ) j d b c 是j 2 e e 中用来访问数据库的技术。利用j d b c a p i 可以在j 2 e e 平台和 数据库之问建立连接【1 9 1 。在e j b 、j s p 、s e r v l e t 中都可以应用j d b c 对数据库进行 各种操作,比如查询、修改、存储、管理事务等等。 7 重庆邮电大学硕士论文第二章m v c 设计模式与s t r u t s 框架 2 1 4j 2 e ew e b 服务器 j 2 e e 通过提供一组标准的a p i 来开发分布式的企业级应用。j 2 e e 架构中的各 项技术都需要一个实现者,这个实现者要按照j 2 e e 的规范提供j 2 e e 应用程序所 需要的服务,主要是w e b 服务和业务组件服务。j 2 e ew e b 服务器就是充当这个 j 2 e e 技术标准实现者的角色。j 2 e ew e b 服务器可以处理一些常见的编程任务,包 括提供事务服务、安全认证、命名和目录服务、数据库访问和连接池、线程池、 负载均衡和容错【2 0 l 。目前实现j 2 e e 标准的主要产品有i b m 的w e b s p h e r e 、b e a 的w e b l o g i c 、以及t o m c a t 等。 2 2 设计模式简介 模式最初来源于建筑工程学上的研究,后来被引入到软件工程行业。1 9 9 5 年, 设计模式:可复用面向对象软件的基础一书一出版,就成为设计模式方面的 经典著作。该书促进了模式概念在软件业的普及,同时带动了对模式的研究和应 用。简单的说,开发人员在开发环境中不断发现问题和寻找问题的解决方案的时 候,发现有一些问题及其解决方案不断发生变化,但这些变化后面潜在着一些共 同的本质,这个共同的本质就是设计模式1 2 ”。 设计模式使人们可以更加简单方便地复用成功的设计经验和体系结构【2 ”。将 已证实的技术表述成设计模式也会使新系统开发者更加容易理解其设计思路。设 计模式能够帮助你做出有利于系统复用的选择,避免设计对系统复用所带来的损 害。通过提供一个显式类和对象作用关系以及它们之间潜在联系的说明规范,设 计模式甚至能够提高已有系统的文档管理和系统维护的有效性。简而言之,设计 模式可以帮助设计者更快更好地完成系统设计、提升系统性能、促进开发的速度 和效率【2 3 1 。一般而言设计模式包含四个基本要素: 夺模式名称( p a t t e r nn a m e ) :是一个助记名,用来描述模式的问题、解决方案 和效果。 夺问题( p r o b l e m ) :描述了应该在何时使用模式。它解释了设计问题和问题存 在的前因后果。它可能描述了特定的设计问题,如怎样用对象表示算法等t 也可 能描述了导致不灵活设计的类或对象结构。有时候,问题部分会包括使用模式必 须满足的一系列先决条件。 解决方案( s o l u t i o n ) :描述了设计的组成部分、它们之间的相互关系及各自 8 重庆邮电大学硕士论文 第二章m v c 设计模式与s t r u t s 框架 的职责和协作方式。它所描述的并不是一个特定而具体的设计或实现,而是提供 设计问题的抽象描述和怎样用一个具有一般意义的元素组合( 类或对象集合) 来解 决这个问题。 夺效果( c o n s e q u e n c e s ) :描述了模式应用的效果及使用模式应权衡的问题。它 主要包括对系统的灵活性、扩充性或可移植性的影响,显式地列出这些效果对理 解和评价这些模式很有帮助。 2 3m v c 设计模式 m v c 是m o d e l v i e w c o n f f o l l e r 的简称,即模型视图控制器。m v c 是x e r o x p a r c 在2 0 世纪8 0 年代为编程语言s m a l t a l k - 8 0 发明的一种软件设计模式【2 4 1 ,至 今已被广泛使用,最近几年被推荐为s u n 公司j 2 e e 平台的设计模式,受到越来越 多的w e b 开发者的欢迎。 2 3 1m v c 设计模式基本结构 m v c 作为设计模式,提供了一个原则,即可以按照模型、表达方式和行为等 角色把一个应用系统的各个部分之间解脱、分割开来。m v c 把应用程序分成三个 核心模块:模型、视图和控制器,它们分别担负着不同的任务2 5 1 。下图显示了这 几个模块各自的功能以及它们的相互关系。 f 一( 控制器)j 选择视图【接收用户请求| 业务处理 调用模蚕g 响应用广请求i i 选择视随显示响应结果j 用户请求 ( 视嘲)状态查询 显小模型状态广一 把用蒡馨茭豢委毳霎薹制器k 一些务里新 把用户输入数据转绐控制器p 卜一 ( 模弛) 代表应用程序状蒜 晌心状态蠢询 响应业务流稃 运知祝龋妲务状态辩新 + 方缓调用 一一,事件 图2 2 m v c 设计模式 1 1 视图:视图是用户看到并与之交互的界面。视图向用户显示相关的数据, 并能接收用户的输入数据,但是它并不进行任何实际的业务处理。视图可以向模 型查询业务状态,但不能改变模型。视图还能接受模型发出的数据更新事件,从 9 重庆邮电大学硕士论文第二章m v c 设计模式与s t o a t s 框架 而对用户界面进行同步更新。对于基于请求响应方式的w e b 应用,模型位于w e b 服务器端,视图位于用户浏览器端。 2 ) 模型:模型是应用程序的主体部分。模型包含了业务数据和业务逻辑,同 时负责访问和更新持久化数据。一个模型能为多个视图提供数据1 2 6 1 ,每个视图都 从不同角度来表达模型。由于同一个模型可以被多个视图重用,所以提高了应用 的可重用性。 3 ) 控制器:控制器接受用户的输入并调用模型和视图去完成用户的请求。当 w e b 用户单击w e b 页面中的提交按钮来发送h t m l 表单时,控制器接收请求并调 用相应的模型组件去处理请求,然后调用相应的视图来显示模型返回的数据。 4 1 处理过程:首先控制器接收用户的请求,并决定应该调用哪个模型来进行 处理:然后模型根据用户请求进行相应的业务逻辑处理,并返回数据;最后控制 器调用相应的视图来格式化模型返回的数据,并通过视图呈现给用户。 2 3 2m v c 设计模式核心组成模式 相对而言,m v c 是一个较高层次的模式,它是由几个更基本的设计模式组合 而成。与m v c 密切相关的主要有三个模式:观察者模式( o b s e r v e r ) 、策略模式 ( s t r a t e g y ) 和组合( c o m p o s i t e ) 模式。 1 ) 观察者模式定义了对象间一种一对多的依赖关系。当一个对象的状态发生 改变时,所有依赖于它的对象都得到通知并被自动刷新。某一个数据可能有多种 显示方式,并且可能同时以这几种方式显示。一旦这个数据发生了更改,它的各 种显示方式应该清楚这一状况并做出相应的调整。m v c 的m o d e l 和v i e w 之间的 关系实际上就被描述为观察者设计模式。 策略模式定义了一系列的算法,通过把算法一个个封装起来,并且使它 们可以相互替换,使得算法可独立于使用它的客户而变化。m v c 可以在不改变 v i e w 的情况下改变v i e w 对用户输入的响应方式,这对于经常需要更改响应逻辑 的系统来说是非常重要的。m v c 把响应逻辑封装在c o n t r o l l e r 中,对用户输入的 响应不是视图来实现的,而是由一个抽象的c o n t r o l l e r 类的不同子类各自独立地实 现。更换不同的c o n t r o l l e r 实例就可以改变v i e w 对用户输入的响应策略。m v c 的 v i e w 和c o n t r o l l e r 之间的关系就被描述成策略模式。 3 ) 组合模式将对象组合成树形结构以表示“部分整体”的层次结构,它使 得用户对单个对象和组合对象的使用具有一致性。组合模式在m v c 中的一个重要 应用就是v i e w 可以组合嵌套。用户可以通过组合简单的视图组件来创建复杂的视 图组件。 l o 重庆邮电大学硕士论文 第二章m v c 设计模式与s t r u t s 框架 2 3 3m v c 设计模式的优缺点 2 3 3 1m v c 的优点 在最初的j s p 网页中,像数据库查询语句这样的数据层代码和像h t m l 这样 的表示层代码混在一起。例如,直接向数据库发送请求并用h t m l 显示,这样开 发速度往往比较快,但由于没有逻辑功能的分离,很难体现出业务模型的重用性, 所设计出的产品很难满足用户的变化性需求。m v c 从根本上强制性地将它们分开。 尽管构造m v c 应用程序需要一些额外的工作,但是它给我们带来的好处是毋庸置 疑的。 1 1 多个视图能够共享一个模型。如今,同一个w e b 应用程序会提供多种用 户界面。例如用户希望既能通过浏览器来收发电子邮件,还希望通过手机来访问 电子邮箱,这就要求w e b 网站同时提供i n t e m e t 界面和w a p 界面。m v c 能够很 方便的用多个视图显示多套数据,使系统能够很方便地支持其它新的客户端类型。 在m v c 设计模式中,模型响应用户请求并返回响应数据,视图负责格式化数据并 把它们呈现给用户。业务逻辑和表示逻辑分离,同一个模型可以被不同的视图重 用,使代码重复达到最低,大大提高了代码的可重用性【”】。 2 1 模型与控制器和视图保持相对独立,因此能够很方便地改变应用程序的数 据层和业务逻辑。如果更换数据库或者更改数据源,只需改变模型即可。一旦正 确地实现了模型,不管数据来自数据库还是文件,视图都会正确地显示它们。由 于m v c 的三个模块相互独立,改变其中一个不会影响其它两个,所以依据这种设 计思想能构造良好的松耦合的构件。这样不但分清了开发者的责任,还可以加快 产品推向市场的时间。 3 1 控制器提高了应用程序的灵活性和可配置性。控制器可以用来连接不同的 模型和视图去完成用户的请求,也可以为构造应用程序提供强有力的手段。给定 一些可重用的模型和视图,控制器可以根据用户的请求选择适当的模型进行处理, 然后选择适当的视图将处理结果显示给用户,很好地表达了用户的交互。 2 3 3 2m v c 的缺点 m v c 的不足体现在以下几个方面: 1 1m v c 设计模式将一个应用程序分成了三部分,增加了系统结构和实现的 复杂性,不易于设计和实现。 重庆邮电大学硕士论文 第二章m v c 设计模式与s 咖b 框架 2 1 使用m v c 设计模式需要精心的计划。由于它的内部原理比较复杂,所以 需要花费一些时间去理解它。相对来说对开发人员的要求也比较高。 2 4 基于m v c 设计模式的s t r u t s 框架 开发人员将相同类型问题的解决途径进行抽象,抽取出来的东西我们称之为 框架【2 钔。框架是一套预先定制好的软件模块,开发者通过利用、扩展、定制这些 模块来形成特定的解决方案。框架提供了一个软件结构,一种业务流程。经过精 心设计的框架,可以方便快速的扩展功能,提取通用功能,而且改善性能,提高 软件的稳定性,使维护更容易和方便。框架不仅仅是一些类和程序的集合,它还 包括对象之间的内在联系。 对于开发w e b 应用,s t r u t s 框架就是一种不错的选择,它是基于m v c 设计模 式的w e b 开发框架。s u u t s 框架在整个系统结构中处于客户端和业务逻辑层之间四】,下 图表明了s u u t s 框架在j 2 e e 系统架构中的位置: 图2 3s 仃u t s 在j 2 e e 架构中的位置图 2 4 1s 劬t s 框架实现m v c 的机制 s t r u t s 框架的所有功能都是建立在已有的j 2 e e 组件或技术之上,如s e r v l e t 、 j s p 或是j a v a b e a n 等,它只是利用一些方式将这些元素组织起来,使它们协同工 作。下图显示了s t r u t s 所实现的m v c 框架。 1 2 重庆邮电大学硕士论文 第二章m v c 设计模式与s t r u t s 框架 图2 4s t r u t s 实现的m v c 框架 1 1 视图 s t r u t s 中使用j s p 作为主要的视图工具。在这些j s p 文件包含了大量的标签, 这些标签可以是标准的j s p 标签或客户化标签,如s t r u t s 标签库中的标签。通过这 些标签可以很好的和系统的m o d e l 部分交互。此外j s p 中还可以包含一些业务逻 辑代码。 除了j s p 页面,其它的视图组件还包括h t m l 、消息资源等。 此外,通常把s t r u t s 框架中的a e t i o n f o r mb e a n 也划分到视图模块中。 a c t i o n f o r mb e a n 也是一种j a v a b e a n ,除了具有一些j a v a b e a n 的常规方法,还包含 一些特殊的方法,用于验证h t m l 表单数据以及将其属性值重新设置为默认值。 s t r u t s 框架利用a c t i o n f o r mb e a n 来进行视图和控制器之间表单数据的传递。s t r u t s 框架把用户输入的表单数据保存在a c t i o n f o r mb e a n 中,把它传递给控制器,控制 器可以对a c t i o n f o r mb e a n 中的数据进行修改,j s p 文件使用s t r u t s 标签读取修改 后的a c t i o n f o r mb e a n 的信息,重新设置h t m l 表单。 2 1 模型 模型包括后台的事务逻辑、真正处理事务的代码和商业逻辑等,它们是整个 应用中最重要的工作部分。s t r u t s 并没有为设计和创建模型组件提供现成的框架。 不过,它允许使用其它模型框架来处理应用的业务领域。如e j b 可用来实现业务 逻辑,常规的j a v a b e a n 用来实现业务数据。 3 ) 控制器 控制器是由a c t i o n s e r v l e t 类、a c t i o n 类还有a c t i o n m a p p i n g 类来实现。 a c t i o n s e r v l e t 类是s t r u t s 框架中的核心组件,它继承了j a v a x s e r v l e t h t t p h t t p s e r v l e t 类,在基于m v c 设计模式的s t r u t s 框架中扮演中央控制器的角色【3 0 1 。a c t i o n s

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论