




已阅读5页,还剩49页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
摘要 j a v ae e 模式框架在中小企业w e b 实施应用中的研究 作者简介:熊伟,男,生于1 9 7 9 年3 月,于2 0 0 4 年9 月就读成都理工大学 师从苗放教授,专业计算机应用技术。 摘要 软件开发发展到今天,由原来单一的手工作坊式的开发发展到成千上万人 的集体开发,使软件开发越来越体现出集体的劳动和创造,7 0 年代出现的“软 件危机”促使人们对软件工程进行研究,提出了缩短开发周期,减少维护成本, 提高软件可扩展性和可维护性。人们总结编程和项目实施经验,提出了很多行 之有效的方法,模式与框架就是重要的经验和实践的总结。 在程序设计中经常会遇到类似的情景,总结这些类似问题和情景,反复研 究比较,形成了解决某一类问题的方法和途径,这就是程序设计模式。现在总 结出很多模式,例如:单例模式,工厂模式等。框架是某种应用的半成品,供 选用完成自己的系统。j a v ae e 技术由原来的j 2 e e 技术发展到今天,走过很多 历程,由原来的m o d c l l 到m o d e l 2 ,再到现在很多成熟的框架,例如:s t r u t s ,s p r i n g 等。模式,框架的最大优点就是缩短开发周期,提高软件可重用性,可扩展性, 可维护性。 文章以模式到框架到框架整合再到在企业中实际应用作为主线,研究框架 在企业w e b 实施应用中体系结构。文章首先介绍了常用的j a v a 模式,现阶段流 行的m v c 开发模式,重要框架,包括s p r i n g ,s t r u t s ,h i b e r n a t e ,然后结合四川 电信项目,探讨了j a v a 模式与框架以及框架整合在中小企业w e b 的实施开发过 程中的实际应用。文章分析了s t r u t s + h i b e r n a t e 框架的优点与不足,并提出了 改良措施,它对于在具体项目下选用不同框架,明白所选用框架的优势和不足, 采用相应措施弥补具有参考价值。 关键词:j a v a 模式m v ci o ca o ps p r i n g h i b e r n a t es t r u t s 成都理工人学硕士学位论文 t h e a p p l i c a t i o no fj a v ae ep a t t e r na n d f r a m e w o r k i nm e d i u ma n ds m a l ls c a l ee n t e r p r i s e s i n t r o d u c t i o no fa u t h o r :x i o n gw e i ( 1 9 7 9 3 一) ,m a l e ,e n r o l l e di nc h e n g d uu n i v e r s i t y o ft e c h n o l o g yi ns e p ,2 0 0 4a n dt u t o r e db yp r o f e s s o rm i a of a n g t h em a j o ri s c o m p u t e ra p p l i c a t i o ns c i e n c e a b s t r a c t c u r r e n t l y , t h es t y l e o fs o f t w a r e d e v e l o p m e n t h a s c h a n g e d f r o m s i n g l e h a n d w o r kt om i l l i o no fp e o p l ed e v e l o p m e n t s o f t w a r ed e v e l o p m e n ti sn o tj u s t as i n g l ep e r s o n sm a s t e r p i e c e ,b u to r eg r o u p sw o r ka n dc r e a t i o n i n1 9 7 0 s ,s o f t w a r e c r i s i s i m p e l sl o t so fe n g i n e e r st or e s e a r c ho f fs o f t w a r ee n g i n e e r i n g t h ep u r p o s e s , w h i c hi sh o wt or e d u c ed e v e l o p m e n tl i f e c y c l e ,t a k eag o o du s eo fo r i g i n a lr e s o u r c e , d e c r e a s em a i n t e n a n c ec o s t ,m a k ei te a s yt oe x t e n du s e f u lr e s o u r c eo rt r yt oa v o i d m o d i f y i n gp r e s e n ts y s t e m ,d r i v ee n g i n e e r st op r o p o s em a n ye f f e c t i v em e t h o d sd u r i n g t h ee x p e r i e n c eo fp r o g r a m m i n ga n di m p l e m e n t t h ea p p l i c a t i o no ft h e s em e t h o d s c a l l g e t al o to fg o o dr e s u l t s ,s u c ha sd e c r e a s i n g d e v e l o p m e n tc o s t ,r e d u c i n g d e v e l o p m e n tl i f e c y c l e ,i m p r o v i n gs y s t e me x t e n s i o na n dm a i n t e n a n c e i nt h ep r o c e s so fp r o g r a m m i n g , w eo f t e r nu s e p r o g r a m m i n gp a t t e r n s ,w h i c h a r eg e n e r a t e da n dc o n c l u d e dd u r i n gt h ec o m p a r i s o na m o n gt h es i m i l a rp r o b l e m s o rs e e i c e s n o w a d a y st h e r ea r el o t so fp a t t e r n s ,s u c ha st h es i n g l e t o n p a t t e r n , f a c t o r yp a t t e r n ,e t c b a s e do nt h ep a t t e r n sw eg e tt h es o f t w a r ef r a m e w o r k ,w h i c h a r es e m i m a n u f a c t u r e dg o o d sa n das e r i e so f c o m p o n e n t sa n dc h o o s e dt of i n i s h s y s t e m s c u r r e n t l yt h e r ea r eaf e w o ff r a m e w o r k s p r o p o s e d ,s u c ha ss t r u t s ,s p r i n g , e t c j a v ae et e c h n o l o g yc o m e sf r o mj 2 e ed e v e l o p e d ,g o n et h r o u g hal o n gw a y , f r o mm o d e l lt om o d e l 2 t h er e m a r k a b l ea d v a n t a g eo fp a t t e r na n df r a m e w o r k i s r e u s a b l e ,e x t e n s i b l e ,m a i n t a i n a b l e a n db e n i f i tt or e d u c et h e l i f e c y c l e o f d e v e l o p m e n t t h i sp a p e rs t a r t sw i t hj a v ap a t t e r nt of r a m e w o r k ,a p p l i c a t i o no ff r a m e w o r k i n t e g r a t i n g ,t h ea r c h i t e c t u r eo fw e bi ne n t e r p r i s e sa p p l i c a t i o n i nt h i sd i s s e r t a t i o n , c o m b i n i n g w i t ht h es i c h u a nt e l e c o mp r o j e c tw ei n t r o d u c es o m es u c c e s s f u l f r a m e w o r k sw h i c hi n c l u d e s p d n h i b e r n a t ea n ds t m t s t h ed r a w b a c k so ft h e i n t e g r a t i n go fs t r u t sa n dh i b e r n t ef r a m e w o r k s u b s e q u e n t l y , a n dt h e np r o p o s e do u r i m p r o v e m e n t i t sv a l u b l et ou n d e r s t a n d i n gt h ea d v a n t a g e sa n ds h o r t c o m i n g si n a d o p t i n ga p p r o p r i a t em e a s u r e st om a k eu pf o r k e y w o r d s :j a v ap a t t e r n ,m v c ,l o c ,a o p , s p r i n g ,h i b e r n a t e ,s t r u t s 独创性声明 本人声明所呈交的学位论文是本人在导师指导下进行的研究工作及取得的 研究成果。据我所知,除了文中特别加以标注和致谢的地方外,论文中不包含其 他人已经发表或撰写过的研究成果,也不包含为获得成都理工人学或其他教 育机构的学位或证书而使用过的材料。与我一同作的同志对本研究所做的任何 贡献均已在论文中作了明确的说明并表示谢意。 硼7 年衫月) 同 学位论文版权使用授权书 本学位论文作者完全了解盛壑堡王盍堂有关保留、使用学位论文的规定, 有权保留并向国家有关部门或机构送交论文的复印件和磁柱,允许论文被查阅和 借阅。本人授权成都理工大学可以将学位论文的全部或部分内容编入有关数 据库进行检索,可以采用影印、缩印或扫描等复制手段保存、汇编学位论文。 ( 保密的学位论文在解密后适用本授权书) 学位论文作者签名: 缝,节 ,矽: 年b 其一,目 第1 章引言 第1 章引言 1 1 课题来源及选题意义 课题来源于:j a v ae e 实践项目,包括四川省商务厅公共管理系统,四川省 电信资源配置管理系统项目,对开源项目p e t s t o r e 的研究,以及对j a v ae e 模式 框架s t r u t s 等开源框架的分析与研究。 本课题的选题意义在于:在软件工程中,做到源代码的最大复用,减少维 护成本,使现在的成品软件利于扩展而不用或者尽量减少对原有系统的改动是 软件工程关心的重要问题。它对于实际项目的应用实施管理具有很大的经济和 社会效益。在以往的很多企业w e b 系统中。由于很少运用框架技术,致使现在很 多遗留的企业w e b 系统可扩展性能很低,需要花费很大成本维护,甚至废弃。实 践证明,在企业w e b 实施应用中,选用合适的框架在提高软件质量和效益,可维 护和可扩展性能,乃至软件项目的开发成功与否能具有重大作用。 模式是解决某一类问题的方法论,每个模式都描述了在一个环境中不断出 现的问题,描述了该问题的解决方案的核心。通过这种方式,可以无数次地使 用已有的解决方案,无需重复相同的工作。模式是一种指导,在一个良好的指 导下,有助于完成任务,有助于作出一个优良的设计方案,达到事半功倍的效 果。而且会得到解决问题的最佳办法。框架,就是一组相互协作的类,对于特 定的一类软件,框架构成了一种可重用的设计。 最大程度地萃取不同企业应用系统的共性,重复使用已经完成的设计和代 码,对企业应用系统中典型场景给出最佳解决方案这是一个“一般性”的问 题;如何让一个早先完成的软件产品贴切地适应极为多变、复杂的企业需求 这是一个“特殊性”的问题。作为对这一组冲突的一种解决方案,不少厂商推出 了自己的企业应用框架。这些框架往往是从大量的委托项目开发中精选出的系 统“不变项”,因此具有很强的普适性和实用性。 一种好的框架至少有下面几个好处: 第一缩短开发周期 采用框架的开发,要比一切从头做起快速、高效得多。通过一般化和重用 机制,框架能最大限度地加快特定应用系统的实现。 第二客户化 基于框架的系统有很多功能通过配置而不是编程实现,这样也给用户带来 了便利。比如,企业内部的r r 人员经过一定培训,就能够自己完成一种新的工 作流程的设置。这对于不断变化的业务需求是很理想的解决方案。 成都理t 大学硕十学位论文 第三不重新发明轮子 框架对于大量典型场景给出了最优的实践。在具体开发时,与其无视| j i 人 的成果,重新构思答案,不如套用这些成熟、稳定的做法。这不仅能加快开发 进度,更能够提升系统的质量和健壮性。 第四可维护性和知识共享 完全通过委托开发完成的系统很难由其他厂商维护。框架往往是多个企业、 大量丌发者实践的成果,因此能在一定程度上打破上述壁垒,增进系统的可维 护性。当框架使用者形成社区之后,还能实现更高层次上的知识共享。 1 2 发展现状 现阶段,已经研究发现很多成熟的模式,模式一般分为:创建模式结构模 式和行为模式。创建模式分为f a c t o r y 、p r o t o t y p e 、s i n g l e t o n 、b u i l d e r 等。结构 模式分为f a c a d e 、p r o x y 、a d a p t e r 、c o m p o s i t e 、d e c o r a t o r 、b r i d g e 、f l y w e i g h t 等。 行为模式分为t e m p l a t e 、m e m e n t o 、o b s e r v e r 、c o m m a n d 、s t a t e 、s t r a t e g y 、m e d i a t o r 、 i n t e r p r e t e r 、v i s i t o r 、c h a i no fr e s p o n s i b i l i t y 等。 目前,主流企业应用框架中大都包含对以下问题的现成解决方案:持久性: 实现数据存储、处理,数据与对象映射,数据缓存;事务:确保一组关联操作 正常、完整的执行;安全性:保证系统的通信安全、数据安全;负载均衡:在 大量并发访问时,保持系统可用:监控:监控系统运行状况,设置系统参数; 日志:记录系统运行情况和异常,记录特定用户操作;应用集成:与其他系统、 应用程序集成;认证权限组织角色管理:管理系统用户、组织职权结构,限制 特定用户对特定功能、特定数据的访问:业务模型( d o m a i nm o d e l ) :管理系统 中业务对象的属性、字段;业务逻辑:实现业务规则和业务逻辑;工作流:实 现多用户、多环节之间的业务处理流程;文件管理:管理文档,实现系统内部 的文件传递;报表和打印:实现数据打印,实现报表的定制和输出;门户和信 息发布:发布企业相关的信息、新闻,提供企业客户的访问入口;通信:系统 内部的消息、通知:系统与外部角色之问通过不同通信媒介( 的互动;特定行 业领域模块:实现特定行业、流域相关的业务模块。 以上很多方面中,除了前四项目前主要由应用服务器解决之外,其他的部 分本身都是专门的软件开发领域。框架的作用,在于确定上述每种因素的具体 技术实现,并规定它们在系统中的组织方式和协作方式,从而给出完整的企业 应用解决方案。目前,在j a v ae e 技术中有很多成熟的框架:例如s t r u t s 等。 2 第1 章引言 1 3 本文主要工作及取得成果 本文基于j a v ae e 平台,首先研究了j a v ae e 各种模式,以及在其上的框架, 以目f i t 最为流行的s p r i n g ,s t r u t s , h i b e r n a t e 框架以及m v c 模式,作为研究实例, 剖析框架的结构,构件,并结合电信综合营帐实际项目对中小企业在w e b 实施中 采用框架进行综合分析,总结中小企业应用的框架模型,并提出自己的意见和 建议,最后介绍了s p n n gs t r u t s h i b e r n a t e 的整合。 文章从软件工程的角度,从如何提高软件的开发质量效率,提高软件的可 维护性和可扩展性出发,分析了软件开发中经常运用到的模式和框架。文章从 具体的项目提炼出模式和框架在实际软件开发中的重要作用和主要优缺点,并 在此基础上做了s p r i n gs t r u t s h i b e r n a t e 的整合。具体实践项目采用了成熟的 框架,开发取得成功,框架的采用为提高实际的开发进程,人员之间的交流, 模块的同时开发管理等起到了至关重要的作用,并且在经常增加的电信业务中 能轻松胜任,这不能不说采用框架的好处。 本文创新点:结合s p r i n g s t r u t sh i b e r n a t e 成熟的j a v ae e 框架,根据具体 的实践项目提出切合中小企业实际的框架应用模型,并分析优点和不足,提出改 进措施,并在改进中做一点探索。 1 4 本文组织结构 本论文共分为四章,第一章阐述了课题的来源。本课题的意义,现在发展状 况;第二章介绍了相关的知识,包括j a v ae e 常用的模式框架重点介绍了现在 流行的m v c 模式;第三章介绍了s p r i n g s t r u t sh i b e r n a t e 框架,着重介绍了 l o c 和a o p 模式。第四章以四川电信项目为例分析了中小企业w e b 实施中的框 架的应用整合,提出了s t r u t s + h i b e r n a t e 这种中小企业现在普遍采用框架的优缺 点,最后介绍了s 州n g s t r u t sh i b e r n a t e 的整合方案。 3 成都理:l :人学硕十学位论文 2 1j a v a e e 相关知识 第2 章相关知识 2 1 1 什么是j a v ae e j a v ae e 是由原来的j 2 e e 发展而来。j a v a2 平台有3 个版本,它们是适用 于小型设备和智能卡j 2 m e ,适用于桌面系统的j a v a2 平台标准版j 2 s e ,适用于 创建服务器应用程序和服务的j a v a2 平台企业版j a v ae e 。 j a v ae e 是一种利用j a v a2 平台来简化企业解决方案的开发、部署和管理相 关的复杂问题的体系结构。j a v ae e 技术的基础就是核心j a v a 平台或j a v a2 平 台的标准版,j a v ae e 不仅巩固了标准版中的许多优点,例如”编写一次、随处 运行”的特性、方便存取数据库的j d b c a p i 、c o r b a 技术以及能够在i n t e r n e t 应用中保护数据的安全模式等等,同时还提供对e j b ,s e r v l e t ,j s p 以及x m l 技 术的全面支持。其最终目的就是成为一个能够使企业开发者大幅缩短投放市场 时间的体系结构。 2 1 2j a v ae e 的优势 j a v ae e 体系结构提供中间层集成框架用来满足无需太多费用而又需要高 可用性、高可靠性以及可扩展性的应用的需求。通过提供统一的开发平台,1 a v a e e 降低了开发多层应用的费用和复杂性,同时提供对现有应用程序集成强有力 支持,完全支持e n t e r p r i s ej a v a b e a n s ,有良好的向导支持打包和部署应用,添 加目录支持,增强了安全机制,提高了性能。 j a v ae e 为搭建具有可伸缩性、灵活性、易维护性的商务系统提供了良好的 机制: 保留现存的r r 资产:由于企业必须适应新的商业需求,利用已有的企业信 息系统方面的投资,而不是重新制定全盘方案就变得很重要。这样,一个以渐 进的( 而不是激进的,全盘否定的) 方式建立在已有系统之上的服务器端平台 机制是公司所需求的。 高效的开发:j a v ae e 允许公司把一些通用的、很繁琐的服务端任务交给中 间件供应商去完成。这样开发人员可以集中精力在如何创建商业逻辑上,相应 地缩短了开发时问。 状态管理服务:让开发人员写更少的代码,不用关心如何管理状态,这样能 够更快地完成程序开发。 持续性服务:让开发人员不用对数据访问逻辑进行编码就能编写应用程序, 4 第2 章相关知识 能生成更轻巧,与数据库无关的应用程序,这种应用程序更易于开发与维护。 分布式共享数据对象c a c h e 服务:让开发人员编制高性能的系统,极大 提高整体部署的伸缩性。 支持异构环境:j a v ae e 能够开发部署在异构环境中的可移植程序。基于 j a v ae e 的应用程序不依赖任何特定操作系统、中间件、硬件。 可伸缩性:企业必须要选择一种服务器端平台,这种平台应能提供极佳的可 伸缩性去满足那些在他们系统上进行商业运作的大批新客户。基于j a v ae e 平 台的应用程序可被部署到各种操作系统上。 稳定的可用性:服务器端平台必须能全天候运转以满足公司客户、合作伙伴 的需要。因为i n t e r n e t 是全球化的、无处不在的,即使在夜间按计划停机也可能 造成严重损失。若是意外停机,那会有灾难性后果。j a v ae e 部署到可靠的操作 环境中,他们支持长期的可用性。一些j a v ae e 部署在w i n d o w s 环境中,客 户也可选择健壮性能更好的操作系统如s u ns o l a r i s 、i b mo s 3 9 0 。 2 1 3j a v ae e 的四层模型 j a v ae e 使用多层的分布式应用模型,应用逻辑按功能划分为组件,各个应 用组件根据他们所在的层分布在不同的机器上。s u n 设计j a v ae e 的初衷正是为 了解决c l i e n t s e r v e r 的弊端。j a v ae e 的多层企业级应用模型将两层化模型中 的不同层面切分成许多层。一个多层化应用能够为不同的服务提供一个独立的 层,以下是j a v ae e 典型的四层结构: 运行在客户端机器上的客户层组件。例如应用客户端程序和a p p l e t s 是客户 层组件;运行在j a v ae e 服务器上的w e b 层组件,j a v as e r v i c t 和j s p 就是w e b 层组件;运行在j a v ae e 服务器上的业务逻辑层组件,f j b 就是业务层组件,业务 层代码的逻辑用来满足银行,零售,金融等特殊商务领域的需要;运行在e i s 服 务器上的企业信息系统层软件,企业信息系统层处理企业信息系统软件包括企 业基础建设系统例如企业资源计划( e r p ) ,大型机事务处理,数据库系统,和其 它的遗留信息系统。 2 1 4 容器和服务 这种基于组件,具有平台无关性的j a v ae e 结构使得j a v ae e 程序的编写 十分简单,因为业务逻辑被封装成可复用的组件,并且j a v ae e 服务器以容器 的形式为所有的组件类型提供后台服务,不用自己丌发服务,所以e n t e r p r i s e b e a n 的布置描述中声明角色和可被激活的方法。由于这种声明性的方法,不必 编写加强安全性的规则。 j a v ae e 事务管理模型让指定组成一个事务中所有方法问的关系,这样一 个事务中的所有方法被当成一个单一的单元。当客户端激活一个e n t e r p r i s eb e a n 5 成都理1 :大学硕士学位论文 中的方法,容器介入一管理事务。因有容器管理事务,在e n t e r p r i s eb e a n 中不必 对事务的边界进行编码。要求控制分布式事务的代码会非常复杂。只需在布置 描述文件中声明e j b 的事务属性,而不用编写并调试复杂的代码。容器将读此 文件并为处理此e j b 的业务。 j n d i 寻址( j n d il o o k u p ) f l 务向企业内的多重名字和目录服务提供了一 个统一的接口,这样应用程序组件可以访问名字和目录服务。 生存周期管理( l i f ec y c l em a n a g e m e n t ) 模型管理e n t e r p r i s eb e a n 的创建和 移除,一个e n t e r p r i s eb e a n 在其生存周期中将会历经几种状态。容器创建 e n t e r p r i s eb e a n ,并在可用实例池与活动状态中移动他,而最终将其从容器中移 除。即使可以调用e n t e r p r i s eb e a n 的c r e a t e 及r e m o v e 方法,容器也将会在后台 执行这些任务。 数据库连接池模型是有价值的资源。获取数据库连接是一项耗时的工作, 而且连接数非常有限。容器通过管理连接池来缓和这些问题,可从池中迅速获 取连接。再释放连接为其他连接使用。 容器类型: j a v ae e 应用组件可以安装部署到以下几种容器中去:e j b 容器管理所有 j a v ae e 应用程序中企业级b e a n 的执行e j b 和它们的容器运行在j a v ae e 服务 器上w e b 容器管理所有j a v ae e 应用程序中j s p 页面和s e r v l e t 组件的执行。 w e b 组件和它们的容器运行在j a v ae e 服务器上。应用程序客户端和它们的容 器运行在j a v ae e 服务器上。 2 2j a v a e e 模式框架 2 2 1 模式 模式,即p a t t e r n ,是解决某一类问题的方法,总结。a l e x a n d e r 给出的经典 定义是:每个模式都描述了一个环境中不断出现的问题,描述了该问题的解决 方案的核心。通过这种方式,可以无数次地使用已有的解决方案,无需重复相 同的工作。 模式的意义在于模式是一种指导,在一个良好的指导下,有助于完成任务, 有助于作出一个优良的设计方案,达到事半功倍的效果,而且会得到解决问题 的最佳办法。 2 2 2 框架: 框架,即f r a m e w o r k ,是某种应用的半成品,是一组组件,供选用完成自己 的系统。简单说就是使用别人搭好的舞台来做表演。而且,框架一般是成熟的, 不断升级的软件。使用框架的意义在于:因为软件系统发展到今天已经很复杂 6 第2 章相关知识 了,特别是服务器端软件,设计到的知识,内容,问题太多。在某些方面使用 别人成熟的框架,就相当于让别人完成一些基础工作,只需要集中精力完成系 统的业务逻辑设计。而且框架一般是成熟,稳健的,可以处理系统很多细节问 题,比如,事物处理,安全性,数据流控制等问题。框架一般都经过很多人使 用,所以结构扩展性比较好,而且它是不断升级的,可以直接享受别人升级代 码带来的好处。框架一般处在低层应用平台( 如j a v ae e ) 和高层业务逻辑之间 的中间。 2 3m v c 模式的分析 2 3 1w 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 的方式进行分离,这样一个应用被分成三个层 模型层、视图层、控制层。 使用m v c 的优点在于:部分用过程语言比如a s pp h p 开发出来的w e b 应用,初始的开发模板就是混合层的数据编程,例如,直接向数据库发送请求 并用h t m l 显示,开发速度往往比较快,但由于数据页面的分离不是很直接,因而 很难体现出业务模型的样子或者模型的重用性。产品设计弹性力度很小,很难 满足用户的变化性需需求。m v c 要求对应用分层,虽然要花费额外的工作,但 产品的结构清晰,产品的应用通过模型可以得到更好地体现。m v c 最重要的优 点是多个视图能共享一个模型,现在需要用越来越多的方式来访问的应用程序。 对此,其中一个解决之道是使用m v c ,无论的用户想要f l a s h 界面或是w a p 界 面;用一个模型就能处理它们。由于已经将数据和业务规则从表示层分开,所 以可以最大化的重用的代码了。由于模型返回的数据没有进行格式化,所以同 样的构件能被不同界面使用。例如,很多数据可能用h t m l 来表示,但是它们 也有可能要用m a c r o m e d i a f l a s h 和w a p 来表示。模型也有状态管理和数据持久 性处理的功能,例如,基于会话的购物车和电子商务过程也能被f l a s h 网站或 者无线联网的应用程序所重用。 另外因为模型是自包含的,并且与控制器和视图相分离,所以很容易改变 应用程序的数据层和业务规则。如果想把的数据库从m y s q l 移植到o r a c l e , 或者改变的基于r d b m s 数据源到l d a p ,只需改变的模型即可。一旦正确的 实现了模型,不管的数据来自数据库或是l d a p 服务器,视图将会正确的显示 它们。由于运用m v c 的应用程序的三个部件是相互对立,改变其中一个不会 影响其它两个,所以依据这种设计思想能构造良好的松耦合的构件。 控制器的也提供了一个好处,就是可以使用控制器束联接不同的模型和视 成都理l :人学硕十学能论文 图去完成用户的需求,这样控制器可以为构造应用程序提供强有力的手段。给 定一些可重用的模型和视图,控制器可以根据用户的需求选择模型进行处理, 然后选择视图将处理结果显示给用户( 孙卫琴2 0 0 4 ) 。 2 3 2m v c 的层次 视图( v i e w ) 代表用户交互界面,对于w e b 应用来说,可以概括为h t m l , x m l 和a d p l e t 等。随着应用的复杂性和规模性,界面的处理也变得具有挑战 性。一个应用可能有很多不同的视图,m v c 设计模式对于视图的处理仅限于视 图上数据的采集和处理,以及用户的请求,而不包括在视图上的业务流程的处 理。业务流程的处理交予模型( m o d e l ) 处理。比如一个订单的视图只接受来自模 型的数据并显示给用户,以及将用户界面的输入数据和请求传递给控制和模型。 控制( c 0 n 仃o i i e r ) 可以理解为从用户接收请求,将模型与视图匹配在一起,共 同完成用户的请求。划分控制层的作用也很明显,它就是一个分发器,选择什么 样的模型,选择什么样的视图,可以完成什么样的用户请求。控制层并不做任何 的数据处理。例如,用户点击一个连接,控制层接受请求后,并不处理业务信息, 它只把用户的信息传递给模型,告诉模型做什么,选择符合要求的视图返回给用 户。因此,一个模型可能对应多个视图,一个视图可能对应多个模型。 m v c 模式是一个复杂的架构模式,但是,已经终结出了很多可靠的设计模 式,多种设计模式结合在一起,使m v c 模式的实现变得相对简单易行。v i e w s 可以看作一棵树,可以用c o m p o s i t ep a t t e r n 来实现。v i e w s 和m o d e l s 之问的关 系可以用o b s e r v e rp a t t e r n 体现。c o n t r o l l e r 控制v i e w s 的显示,可以用s t r a t e g y p a t t e r n 实现。m o d e l 通常是一个调停者,可采用m e d i a t o rp a t t e m 来实现。 下面是m v c 结构图: 图2 - 1m v c 结构图 f i g u r e2 - ia r c h i t e c t u r e o fm v c 8 第2 章相关知识 2 4 模式及其常用模式介绍 模式是研究的范例。模式不是简单的“问题的解决方案”,因为模式必须是 典型问题的解决方案,是可以让学习者举一反三的,有研究价值、有交流价值。 2 4 1 设计模式的原则: ”开一闭”原则:模块应对扩展开放,而对修改关闭。模块应尽量在不修改 原来代码的情况下进行扩展。 罩氏代换原则:如果调用的是父类,那么换成子类也完全可以运行。 合成复用原则:少用继承,多用合成关系来实现。 依赖倒转原则:抽象不应该依赖与细节,细节应当依赖抽象。要针对接口 编程,而不是针对实现编程。传递参数,或者在组合聚合关系中,尽量引用层 次高的类。 接口隔离原则:定制服务的例子,每一个接口应该是一种角色,不多不少, 不干不该干的事,该干的事都要干。 抽象类:抽象类不会有实例,作为父类为子类继承,一般包含共同属性和 方法。好的继承关系中,只有叶节点是具体类,其他节点应该都是抽象类,也 就是具体类是不被继承的。将尽可能多的共同代码放到抽象类中。j 迪米特法则:也就是和周围的模块通信尽可能最少( 阎宏2 0 0 2 ) 。 2 4 2 模式的四个基本要素: 设计模式使人们可以更加简单方便地复用成功的设计和体系结构。将已证1 实的技术表述成设计模式也会使新系统开发者更加容易理解其设计思路。 模式名称( p a t t e r n n a m e ) :一个助记名,它用一两个词来描述模式的问题、 解决方案和效果。命名一个新的模式增加了的设计词汇。设计模式允许在较高 的抽象层次上进行设计。基于一个模式词汇表,就可以讨论模式并在编写文档 时使用它们模式名可以帮助思考,便于与其他人交流设计思想及设计结果。 问题:描述了应该在何时使用模式。它解释了设计问题和问题存在的前因 后果,它可能描述了特定的设计问题,如怎样用对象表示算法等。也可能描述 了导致不灵活设计的类或对象结构。有时候,问题部分会包括使用模式必须满 足的一系列先决条件。 解决方案:描述了设计的组成成分,它们之问的相互关系及各自的职责和 协作方式。因为模式就像一个模板,可应用于多种不同场合,所以解决方案并 不描述一个特定而具体的设计或实现,而是提供设计问题的抽象描述和怎样用 具有一般意义的元素组合类或对象组合来解决问题。 效果:描述了模式应用的效果及使用模式应权衡的问题。尽管描述设计决 9 成都理_ i :大学硕士学位论文 策时,并不总提到模式效果,但它们对于评价设计选择和理解使用模式的代价 及好处具有重要意义。软件效果大多关注对时间和空日j 的衡量,它们也表述了 语言和实现问题。因为复用是面向对象设计的要素之一,所以模式效果包括它 对系统的灵活性、扩充性或可移植性的影响,显式地列出这些效果对理解和评 价这些模式很有帮助。 2 4 3 模式的分类: 模式分为创建模式,结构模式和行为模式。 创建模式分为f a c t o r y 、p r o t o t y p e 、s i n g l e t o n 、b u i l d e r 结构模式分为f a c a d e 、p r o x y 、a d a p t e r 、c o m p o s i t e 、d e c o r a t o r 、b r i d g e 、f l y w e i g h t 行为模式分为t e m p l a t e 、m e m e n t o 、o b s e r v e r 、c o m m a n d 、s t a t e 、s t r a t e g y 、 m e d i a t o r 、i n t e r p r e t e r 、v i s i t o r 、c h a i no fr e s p o n s i b i l i t y 2 4 4 常用模式介绍 工厂模式就相当于创建实例对象的n e w ,经常要根据类c l a s s 生成实例对 象,如aa = n e wa o 工厂模式也是用来创建实例对象,这样会给系统带来更大 的可扩展性和尽量少的修改量。 工厂模式负责将大量有共同接口的类实例化。工厂模式的几种形态:简单工 厂模式,又称静态工厂模式;工厂方法模式,f a c t o r ym e t h o d ,又称多态工厂或 虚拟构造子模式( v i r t u a lc o n s t r u c t o r ) ;抽象工厂模式,a b s t r a c tf a c t o r y ,又称 工具箱( k i t 或1 b o l 尉t ) 模式。 简单工厂模式设计到的角色: 工厂类( c r e a t o r ) 角色:本角色是工厂模式的核心,它含有与应用紧密相 关的商业逻辑。工厂类在客户端的调用下创建产品对象,它由具体的j a v a 类实 现。 抽象产品( a b s t r a c tp r o d u c t ) 角色:它为具体产品提供了共同的接口,工厂 方法的返回类型。 具体产品( c o n c r e t ep r o d u c t ) 角色:工厂方法所创建的对象都是它的实例, s i n g l e t o n 模式主要作用是保证在j a v a 应用程序中。一个类c l a s s 只有一个实例 存在下面是s i n g l e t o n 模式的两种常用实现: p u b l i cc l a s ss i n g l e t o n p r i v a t es i n g l e t o n 0 ) 注意这是p r i v a t e 只供内部调用 p r i r a t es t a t i cs i n g l e t o ni n s t a n c e = n e ws i n g l e t o n 0 : _ 这攀提供r 一个供外部访问奉c l a s s 的静态方法,町以直接访问 p u b l i cs t a t i cs i n g l e t o ng e t l n s t a n e e 0 【 r e t u r ni n s t a n c e : ) 1 p u b l i cc l a s ss i n g l e t o n 1 0 第2 章相关知识 p r i v a t es t a t i cs i n g l e t o ni n s t a n c e = n u l l : p u b l i cs t a t i cs y n c h r o n i z e ds i n g l e t o ng e t i n s t a n c e ( ) 本方法比上面自所改进,不用每次都进行生成对象。只是第一次 使用时生成实例l i f ( i n s t a n c e = = n u l l ) i n s t a n c e = n e ws i n g l e t o n 0 : r e t u r ni n s t a n c e :) ) ( a l u r , d e e p a k2 0 0 5 ) f a c a d e 模式( 外观模式) :为子系统中的一组接口提供一致的界面。外观模式 ( f a c a d ep a t t e r n ) 涉及到子系统的一些类。所谓子系统,是为提供一系列相关 的特征( 功能) 而紧密关联的一组类。真实的应用系统中,一个子系统可能由 很多类组成。子系统的客户为了它们的需要,需要和子系统中的一些类进行交 互。客户和子系统的类进行直接的交互会导致客户端对象和子系统( f i g u r c l ) 之间高度耦合。任何的类似于对子系统中类的接口的修改,会对依赖于它的所 有的客户类造成影响。外观模式( f a c a d ep a t t e r n ) 为子系统提供了一个更高层 次、更简单的接口,从而降低了子系统的复杂度和依赖。这使得子系统更易于 使用和管理。外观是一个能为子系统和客户提供简单接口的类。当正确的应用 外观,客户不再直接和子系统中的类交互,而是与外观交互。外观承担与子系 统中类交互的责任。实际上,外观是子系统与客户的接口,这样外观模式降低 了子系统和客户的耦合度。 图2 - 2f a c a d e 模式 f i g u r e2 - 2t h ep a t t e r no ff a c s a d e 由图可以看出,f a c a d e 实际上是个理顺系统问关系,降低系统问耦合度的一 个常用的办法。 a d a p t e r 模式:通常,客户类通过类的接1 2 1 访问它提供的服务。有时,现有 的类可以提供客户类的功能需要,但是它所提供的接口不一定是客户类所期望 的。这是由于现有的接口太详细或者缺乏详细或接口的名称与客户类所查找的 成都理l :人学硕士学位论文 不同等诸多不同原因导致的。在这种情况下,现有的接口需要转化为客户类期 望的接口,这样保证了对现有类的重用。如果不进行这样的转化,客户类就不 能利用现有类所提供的功能。适配器模式( a d a p t e rp a t t e r n
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 家禽消毒室管理制度
- 应急局科室管理制度
- 彩票发行费管理制度
- 微信技师房管理制度
- 德克士值班管理制度
- 快递分拣站管理制度
- 急救室专人管理制度
- 总经理聘任管理制度
- 感控办部门管理制度
- 成品库出货管理制度
- 多功能呼吸机项目安全风险评价报告
- 2025年法律硕士入学考试试题及答案
- 2025至2030中国建材行业发展分析及产业运行态势及投资规划深度研究报告
- 2025年黑龙江、吉林、辽宁、内蒙古高考生物真题试卷(解析版)
- 2025-2030中国线扫描照相机行业市场发展趋势与前景展望战略分析研究报告
- 2025年艺术与数字艺术类事业单位招聘考试综合类专业能力测试试卷
- 福建省泉州市晋江市2025届数学七下期末调研试题含解析
- 2025至2030年中国钢结构制品行业投资前景及策略咨询研究报告
- 山西省运城市2025年中考一模语文试题(含答案)
- 2025河南中考:政治必背知识点
- 电影放映员试题及答案
评论
0/150
提交评论