(计算机软件与理论专业论文)设计模式在虚拟交易平台中的应用研究.pdf_第1页
(计算机软件与理论专业论文)设计模式在虚拟交易平台中的应用研究.pdf_第2页
(计算机软件与理论专业论文)设计模式在虚拟交易平台中的应用研究.pdf_第3页
(计算机软件与理论专业论文)设计模式在虚拟交易平台中的应用研究.pdf_第4页
(计算机软件与理论专业论文)设计模式在虚拟交易平台中的应用研究.pdf_第5页
已阅读5页,还剩69页未读 继续免费阅读

(计算机软件与理论专业论文)设计模式在虚拟交易平台中的应用研究.pdf.pdf 免费下载

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

文档简介

太原理工大学硕士研究生学位论文 设计模式在虚拟交易平台中的应用研究 摘要 煤炭是我国重要的基础资源,煤炭物流在我国流通领域占据着重要位 置。山西煤炭运销集团有限公司拥有丰富的煤炭资源和基础网络资源,完 备的公路煤炭运销体系,构建虚拟交易平台可实现资源共享、加快资源流 通速度、降低企业成本、提高企业效益。本文寻找一种使用模式理论来进 行系统建模的方法,在不同的软件层次上使用相应的模式,通过模式和需 求分析结果的结合,不断细化软件的设计,为软件系统建立一个灵活的体 系结构,以增强虚拟交易平台的可维护性和复用性。 本文首先介绍了设计模式的基本理论,分析了设计模式的选择和使用 方法,并在系统设计阶段引入设计模式来指导系统的设计和开发。本文详 细描述了2 3 种成熟的设计模式及其应用的环境,深入研究了如何根据实际 开发情况选择和复用适当的设计模式来提高开发效率。本文介绍了n e t 作 为一种新兴的开发平台的发展、组成和主要特点,把设计模式,特别是工 厂模式、外观模式和代理模式等,和n e t 的优势融合起来,并将以上研究 内容成功的应用到虚拟交易平台的开发中。 本文通过对煤炭物流企业特点和传统模型的分析,构建了基于设计模 式的虚拟交易平台模型,该模型分为三层:数据层、业务逻辑层和表示层。 在数据层通过抽象工厂和数据访问对象模式的结合,解决了异类数据源的 问题;在业务逻辑层利用外观模式实现了系统层间的松散耦合;在表示层 重点介绍了利用观察者模式和m v c ( m o d e l v i e w - c o n t r o l l e r ) 设计的通用查询 组件的实现。 本文引入传统的m v c 设计模型,重点分析了控制器、模型和视图的设 t 太原理工大学硕士研究生学位论文 计原理及其关键技术,并在2 3 种设计模式基础上,按照面向对象的软件工 程思想,以a s p n e t 为工具,设计开发了煤炭虚拟交易平台。 在虚拟交易平台中用户可提出需求,查询符合条件的煤炭资源和运输 企业,签订合同,进行采购和运输煤炭等交易。本系统具有系统功能划分 清晰,系统流程配置灵活,可扩展性、可维护性强,易于开发,可支持多 种用户界面类型等优点。 关键词:模式,设计模式,可维护性,软件复用,虚拟交易 太原理工大学硕士研究生学位论文 a p p l i c a t i o nr e s e a r c ho fd e s i g n p a t t e r n s i nv i r t u a lt r a d ep l a t f o r m a b s t r ac t c o a li sa ni m p o r t a n tb a s i so fr e s o u r c e s c o a ll o g i s t i c s o c c u p i e s a l l i m p o r t a n tp o s i t i o n i nt h ed o m a i no fc h i n e s ec i r c u l a t i o n s h a n x ic o a l t r a n s p o r t a t i o n a n d m a r k e t i n gg r o u p l i m i t e dh a v ea b u n d a n tc o a la n d i n f r a s t r u c t u r en e t w o r k r e s o u r c e s ,m a t u r i t yt h eh i g h w a ys y s t e m o fc o a l t r a n s p o r t a t i o n t h ec o n s t r u c t i o no fv i r t u a lt r a d ep l a t f o r mc a ns h a r er e s o u r c e s , a c c e l e r a t et h ec i r c u l a t i o ns p e e do fr e s o u r c e s ,r e d u c eb u s i n e s sc o s t s ,a n di m p r o v e b u s i n e s se f f i c i e n c y t h i sp a p e rf i n d so u tan e wm e t h o dt ob u i l dt h es y s t e m , w h i c hv i at h eu s eo fd e s i g np a t t e r no nd i f f e r e n tl e v e l ,a n dc o m b i n a t e sp a t t e m s a n dt h er e s u l t e so fs o f t w a r er e q u i r e m e n ta n a l y s i st os p e c i f i ct h es o f t w a r ed e s i g n , t ob u i l daf l e x i b l ea r c h i t e c t u r ef o rs o f t w a r es y s t e ma n di m p r o v et h er e u s ea n d m a i n t e n a n c eo fs o f t w a r e t h i sp a p e rf i r s t l yi n t r o d u c e st h eb a s i ct h e o r i e so fd e s i g np a t t e ma n d 。 , a n a l y s e si t sm e t h o do fc h o i c ea n du s i n g t h ep a p e ra p p l i e sd e s i g np a r e mt o s y s t e md e v e l o p m e n tp r o c e s si no r d e rt og u i d et h ed e s i g na n dd e v e l o p m e n to f s y s t e m t h ep a p e rd e s c r i b e s2 3k i n d so fm a t u r ed e s i g np a t t e r n sa n dt h e i r a p p l i c a t i o ne n v i r o n m e n t s ,a n dd e e p l ys t u d i e sh o wt oc h o o s ea n dr e u s er i g h t d e s i g np a t t e mo n t h eb a s i so fa c t u a ls i t u a t i o nt oi m p r o v ed e v e l o p m e n te f f i c i e n c y i ti n t r o d u c e s n e tp l a t f o r m s ( a ne m e r g i n gd e v e l o p m e n tp l a t f o r m ) d e v e l o p m e n t a n dm a j o rf e a t u r e s ,a n df o c u s e so nt h ec o m b i n a t i o no f n e tp l a t f o r m s a d v a n t a g ea n dd e s i g np a t t e r n s ,s u c ha sf a c t o r y , f a c e da n dp r o x yp a t t e r n w eh a v e s u c c e s s f u l l ya p p l i e dt h er e s u l t st h a tw eh a v er e s e a r c h e di n t od e v e l o p i n ga v i r t u a l m 太原理工大学硕士研究生学位论文 t r a d ep l a t f o r m t h r o u g ht h ea n a l y z i n gt h ec h a r a c t e r i s t i c so ft h ec o a ll o g i s t i c se n t e r p r i s e s a n dt r a d i t i o n a lm o d e l s ,t h i sp a p e rc o n s t r u c t sav i r t u a lt r a d ep l a t f o r mm o d e l b a s e do nd e s i g np a t t e r n t h i sm o d e li n c l u d e st h r e el a y e r s :d a t al a y e r , b u s i n e s s l o g i c a ll a y e ra n dp r e s e n t a t i o nl a y e r t h i sp a p e rd e s i g n sg e n e r a l d a t al a y e r c o m p o n e n tu p o nt h ec o m b i n a t i o no fa b s t r a c tf a c t o r ya n dd a t aa c c e s so b j e c t ( d a o ) p a t t e r nt os o l v et h ep r o b l e m o fd i f f e r e n tt y p e so fd a t as o u r c e s ;i no r d e rt o r e a l i z el o w c o u p l i n ga n dh i g h a g g r e g a t i o nf u n c t i o nb e t w e e nl a y e r s ,w ed e s i g n b u s i n e s sl o g i c a lc o m p o n e n tm o d e lw i t hf a c a d ep a t t e m ;i np r e s e n t a t i o nl a y e rw e f o c u s eo nt h ei m p l e m e n t a t i o no fc o m m o nc o m p o n e n t sw i t ho b s e r v e rp a t t e r na n d m v c ( m o d e l v i e w - c o n t r o l l e r ) i nt h i sp a p e r , t h et r a d i t i o n a lm v c p a t t e mi si n t r o d u c e d t h ee m p h a s i so f t h ep a p e ri n c l u d e sd e s i g np r i n c i p l ea n dk e yt e c h n i q u eo fc o n t r o l l e r , m o d e la n d v i e w b a s e do n2 3k i n d so fd e s i g np a t t e r n s ,av i r t u a lt r a d ep l a t f o r mu s i n g a s e n e ti s d e v e l o p e da c c o r d i n gt ot h eo b j e c t o r i e n ts o f t w a r ee n g i n e e r i n g t h i n k i n g i nt h ev i r t u a lt r a d ep l a t f o r m ,t h eu s e r sm a yd e m a n dr e q u i r e m e n t ,q u e r yt h e c o a lr e s o u r c e sa n dt h et r a n s p o r t a t i o no fe n t e r p r i s e s ,s i g nc o n t r a c t s ,p u r c h a s ea n d t r a n s p o r tc o a lr e s o u r c e s u n d e rt h i sp a t t e r n ,t h es y s t e mf u n c t i o n sc a nb ec l e a r l y d i v i d e da n dt h es y s t e mf l o wc a nb ef l e x i b l yc o n f i g u r e d t h es y s t e ma l s oh a st h e a d v a n t a g eo fs t r o n gs c a l a b i l i t ya n dm a i n t a i n a b i l i t y , e a s yt od e v e l o pa n ds u p p o r t m u l t i p l et y p e so fu s e ri n t e r f a c e k e yw o r d s :p a t t e r n ,d e s i g np a t t e m ,m a i n t e n a n c e ,s o f t w a r er e u s e ,v i r t u a lt r a d e i v 声明尸明 本人郑重声明:所呈交的学位论文,是本人在指导教师的指导下, 独立进行研究所取得的成果。除文中已经注明引用的内容外,本论文 不包含其他个人或集体已经发表或撰写过的科研成果。对本文的研究 做出重要贡献的个人和集体,均已在文中以明确方式标明。本声明的 毫 法律责任由本人承担。 论文作者签名:丝童壹日期: 2 8 一石一4 关于学位论文使用权的说明 本人完全了解太原理工大学有关保管、使用学位论文的规定,其 中包括:学校有权保管、并向有关部门送交学位论文的原件与复印 件;学校可以采用影印、缩印或其它复制手段复制并保存学位论文; 学校可允许学位论文被查阅或借阅;学校可以学术交流为:目的, 复制赠送和交换学位论文;学校可以公布学位论文的全部或部分内 容( 保密学位论文在解密后遵守此规定) 口 签;名:五兰垂盔日期: 导师签名:瑟! 豆2 奎日期: 塑盆:厶:竺 太原理工大学硕士研究生学位论文 1 1 研究背景 第一章绪论 煤炭是我国重要的基础能源,约占一次能源消费中的7 0 ,在我国一次能源结构中 占据着不可替代的地位。2 0 0 7 年我国煤炭总产量超过1 7 亿吨,据专家预测到2 0 2 0 年国 内市场对煤炭的需求量将达到2 0 亿吨。我国煤炭生产地区少,消费地区分布很广,很 多产区的煤炭都要进行外运。据统计仅我国煤炭的运输就占全国铁路和水路年货运总量 的4 0 左右,因此煤炭物流在我国流通领域中已占据重要位置。 i n t e r n e t 的出现掀起了一场信息技术革命,它使原来的单机环境发展到了基于网络 的分布式环境,网络作为世界范围内最大和最有效的信息获取和发布媒体,以其友好的 用户界面、方便的用户操作,使得个人、商家和政府都纷纷与i n t e r n e t 绑定。虚拟交 易平台是将传统的交易与w e b 技术相结合,通过在w e b 静态界面中加入各种程序和控制 逻辑,在网络的客户端和服务器端实现动态和个性化交流与互动的应用。文章中虚拟交 易平台主要将以山西煤炭运销集团有限公司的项目为背景,对煤炭物流中采购和运输煤 炭等交易进行研究。 构建虚拟交易平台的关键是要在系统开发过程中提高系统的性能。传统的软件开发 方法存在软件成本高、质量不理想、开发进度难以控制、软件修改与维护困难等问题。 虽然利用软件复用技术可以解决以上问题,然而,随着软件系统规模的扩大和复杂性的 增加,在软件设计过程中传统的分析与设计只把注意力集中在功能需求上,而忽略了非 功能性的需求,如系统性能、可适应性、可靠性、可移植性、可维护性等需求n 1 。设计 模式不仅能解决功能性需求,也能解决非功能性需求。设计模式是人们在长期的软件开 发实践中,总结出一些解决特定问题的有效方法,并加以总结提炼,在碰到类似问题时, 就可以直接复用以前的方法口1 。在虚拟交易平台中应用设计模式可以更好地满足用户变 化的需求,使应用系统具有更强的可维护性、可扩展性和可移植性。 1 2 研究的目的和意义 我国大多数物流企业存在“小( 经营规模小) 、“少 ( 市场份额少、服务功能少、 高素质人才少) 、“弱( 竞争能力弱、融资能力弱) 、“散 ( 货源不稳定且结构单_ 、网 太原理工大学硕士研究生学位论文 络分散、经营秩序不规范) 的问题,构建虚拟交易平台能从根本上解决物流企业的这些 问题。山西省煤运销总公司已初步建成了内联煤矿、外联市场,内外响应的多层次、全 方位的产、储、加工、运输和管理相配套的煤炭运销体系;形成了覆盖全国2 6 个省( 市) 、 五大区域,电力、冶金、化工、建材四大重点用煤行业的煤炭营销网络。作为煤炭运销 重要渠道的公路煤炭运销,已初步建设了以高速公路、国道、省道、县乡道等运输线路 为依托,形成了拥有4 3 个出省煤焦管理站、2 8 2 个煤焦销售营业站、2 8 个企业用煤管 理站和6 1 个煤炭运输汽车队,总吨位达3 万吨的公路煤炭运销体系。同时,为提高稀 缺煤炭资源的回采率,向煤炭产业注入可持续发展内涵,省公路运销公司通过独资、控 股、参股、承包、租赁等多种经营模式,建成了拥有4 3 亿吨的总储量,1 0 2 个不同类型 煤矿,年核定生产能力3 7 9 3 万吨的集产、运、销能源信息系统与信息资源开发为一体 的新型能源企业。山西煤炭运销集团有限公司现在迫切需要一个煤炭物流虚拟交易平 台,通过这个平台整合己有资源,实现资源共享,提供快速、安全、。高效、通达和便利 的煤炭物流信息服务网络,以满足客户现在和未来利益的需要;最终建立一个国际性的 运输方式综合多样的、智能的、与环境协调的煤炭物流体系,降低公路煤炭运销管理、 煤炭生产企业销售和煤炭用户购买成本口1 。 虚拟交易平台的信息化对提高当今企业的竞争力是极其重要的。信息化物流在降低 成本的同时,保证了供货速度的可获得性以及良好的服务品质,增加了客户满意度,提 高了商品销售额,从而提高企业的竞争力。 虚拟交易平台的信息系统是构建现代物流的中枢神经,通过信息在物流系统中快 速、准确和实时地流动,可以使企业对市场做出积极地反应,并指导企业调整生产经营 活动。基于i n t e r n e t 的物流虚拟交易平台的功能真正实现了物流企业之间,企业与客 户之间的物流信息和物流功能的共享。 物流虚拟交易平台最重要的作用就是整合各物流信息系统的信息资源,完成各系统 之间的数据交换,实现信息共享,满足不同客户的信息需求,提高了物流系统的效率。 通过物流虚拟交易平台,可以加强物流企业与上下游企业之间的合作,形成优化供 应链。有利于提高社会大量闲置物流资源的利用率,起到调整、调配社会物流资源,优 化社会供应链、理顺经济链的重要作用,不但会产生很好的经济效益,而且会产生很好 的社会效益。 物流虚拟交易平台的建设有利于实现与电子商务b 2 b ( b u s i n e s st ob u s i n e s s ) 或b 2 c ( b u s i n e s st oc o n s u m e r ) 系统的对接。通过物流信息平台的建设,可以为电子商 2 太原理工大学硕士研究生学位论文 务提供很好的物流服务,从而促进电子商务的发展。一般的物流信息平台都提供在线交 易功能,这实际上就提供了电子商务的基本功能。 设计模式是设计面向对象软件的过程中记录的知识和经验,用一系列类和对象来具 体描述其含义。设计模式通过明确对象、对象问的协作和职责分配,捕捉到了隐藏在设 计背后的意图。设计模式的目的就是复用已有面向对象设计的解决方案,根据具体应用 完成具体的设计,以便于抽象解决方案的积累和交流h 1 。对设计模式在虚拟交易平台中 应用研究对于促进软件生产的工程化、提高软件质量、提高设计的效率、便于软件开发 团体中成员之间的沟通、提高整个系统的性能等方面具有重要意义。 1 3 国内外研究现状 煤炭是重要的基础能源,也是不可再生性的资源,世界主要产煤国越来越重视对煤 炭资源的管理,除对煤炭资源的开采有严格立法外,对煤炭的运输也越来越重视。 美国、澳大利亚、印度、南非、加拿大、俄罗斯、越南、印度尼西亚等主要产煤国 家非常重视煤炭的开采与运输。美国是世界经济强国,2 0 0 4 年铁路煤炭运输量是6 5 1 0 7 2 6 车,占美国铁路运输总量的3 9 4 。2 0 世纪8 0 年代以来,美国铁路逐步由面向运输生 产转为面向市场服务,重视运输物流的服务和开发,但主要集中在铁路运输行业。德国 综合运输体系发达,公路网密度大、等级高,其中公路交通运输网密度仅次子美国,居 世界第二位。公路运量占德国运输总量的2 3 ,公路物流服务功能和市场竞争力在不断 提高,为煤炭的物流运输提供了重要的支持嘲。 在国内,煤炭在能源结构中一直处于非常重要地位,而且需求量仍将不断增加。一 方面我国煤炭主要商品化产区集中在以山西为中心的北方产区,而煤炭的消费地大都集 中在经济较为发达的东部沿海和南方地区;另一方面进行煤炭生产所需的原材料、零部 件、燃料等辅助材料的供应量十分巨大,煤炭运输占全国年货运总量的四成以上。 全国对煤炭物流业的研究还比较少,煤炭物流体系尚未完全建立,加快对煤炭物流 的研究,构建煤炭物流虚拟交易平台,实施物流工程,对于降低煤炭物流费用,压缩生 产成本,减少流动资金占用,增加企业利润,提高企业经济效益和市场竞争力具有十分 重要的意义。 目前对于设计模式的研究工作主要集中在新设计模式的发现和发明,模式的组织和 索引,设计模式的使用自动化,形式化模式,设计模式的应用及具体化等几个方面陆1 。 3 太原理工大学硕士研究生学位论文 基于设计模式的虚拟交易平台的应用研究,可以解决系统设计开发中现存的许多问题, 人们可以更简单方便的复用成功的设计和体系结构,在模式库建立后,开发人员的设计 思路将走上一条全新的基于设计模式开发之路。将设计模式引入虚拟交易平台,可提高 系统的稳定性、可靠性、可维护性、可扩展性,为用户提供友好的界面、方便的操作。 1 4 主要内容 文章就设计模式在虚拟交易平台中的应用进行了研究和探讨,主要就虚拟交易平台 中几个关键的通用问题给出相关的设计模式解决方案。该虚拟交易平台的设计为在网上 进行虚拟交易,签订合同等提供解决方案,在数据层的设计和应用上给出一个范例。 ( 1 ) 设计模式的提取。根据国内外已有的各种设计模式,结合企业应用的特点,在 己成功的系统基础上,提取出适合企业应用的设计模式,然后把这些模式应用于企业应 用设计来改善系统性能。 ( 2 ) 设计模式在具体应用中的选择、使用方法。分析了在虚拟交易平台设计过程中 建模的必要性,并对设计模式的特点及其建模的过程进行分析归纳。设计模式如何与具 体应用相结合、根据具体应用特点来进行特化的探讨。 ( 3 ) 设计模式在系统开发过程上的研究,在系统设计阶段引入设计模式来指导系统 的设计和开发。设计虚拟交易平台总体框架,进行模块划分,分析各个模块主要业务, 以及各个模块间的关联,确定下一步要详细分析的模块。 ( 4 ) 虚拟交易平台中设计模式的研究与应用。在传统三层结构的基础上搭建了基于 设计模式的虚拟交易平台模型,然后针对本模型的特点和特定问题,分别从设计模式角 度构建了数据层组件模型、业务逻辑层组件模型和表示层组件模型。使用设计模式对虚 拟交易平台进行设计,总结用设计模式进行软件开发的经验。 4 太原理工大学硕士研究生学位论文 2 1 模式与设计模式 2 1 1 模式与设计模式定义 第二章相关技术理论 模式是解决特定问题的经验,它可以整理和记录在软件开发过程中经常重复出现的 问题和成功解决这些问题的方案,并且可以通过模式与他人交流这些经验。美国加州建 筑学教授c h r is t o p h e ra l e x a n d e r 在模式语言中指出:模式是由三部分组成的规则, 它描述了特定环境、问题和解决方案之间的关系n 1 。 在p o s a ( p a t t e r n so r i e n t e ds o f t w a r ea r c h i t e c t u r e ) 中,模式按照软件开发的 层次可以分为体系结构模式( a r c h i t e c t u r ep a t t e r n s ) 、设计模式( d e s i g np a t t e r n s ) 和 程序模式( p r o g r a m m i n gp a t t e r n s ) 。其中体系结构模式是属于比较高层的模式,例如 m v c ( m o d e l v i e w c o n t r o l l e r ) 、l a y e r s 、b r o k e r 等。设计模式则属于中间层次的模式, 描述特定环境下解决特定问题的方案,这个方案代表了在软件开发过程中特定场景下解 决重复发生的问题的方法,它通常由多个对象组成。而程序模式则属于比较低层的模式, 有时甚至指程序设计中的一些习语随1 。 由于目前设计模式的研究主要集中在对象技术领域,因此现有的大多数设计模式都 是面向对象的设计模式。1 9 9 4 年e r i c hg a m m a ,r i c h a r dh e l m ,r a l p hj o h n s o n 和j o h n v l i s s i d e s ( 简称“g a n go ff o u r ) 合著的 d e s i g np a t t e r n s :e l e m e n t so fr e u s a b l e o b j e c t e d o r i e n t e ds o f t w a r e 认为“设计模式描述了被用来在特定场景下解决一般设 计问题的类和相互通信的对象”。 2 1 2 设计模式的描述形式 抽象的模式是需要用一种结构化的形式来表达的。目前,在软件界己形成四种具有 代表性的模式描述形式:a l e x a n d e r 格式、g a m m a 格式、c o p l i e n 与s c h m i d t 格式、r i e h l e 与z u l l i g h o v e n 格式。这四种模式描述形式各具特色,使用意图和侧重点都有所不同。 使用a l e x a n d e r 格式的意图是主要引导用户对所描述的问题产生解决方案,其特色在于 它的再生能力。使用g a m m a 格式的意图也是帮助用户产生解决问题的方案,但它强调的 5 太原理工大学硕士研究生学位论文 更多的是模式自身的实际结构与动态行为,而对什么时候使用该模式关心得比较少,其 特色在于描述性。使用r i e h l e 与z u l l i g h o v e n 格式的意图是在不提出模式的特定使用 方式的情况下讨论模式的结构、动态行为以及它的环境,其特色在于它的通用性,可经 过适当限制用于特定的用途1 。 一般而言,设计模式有四个基本要素口1 。 ( 1 ) 模式名称( p a t t e r nn a m e ) :一个助记名,它用一两个词来描述模式的问题、解 决方案和效果。模式名可以帮助我们思考,便于我们与其他人交流设计思想及设计结果。 ( 2 ) 问题( p r o b l e m ) :描述了应该在何时使用模式。它解释了设计问题和问题存在 的前因后果,指出了使用模式必须满足的一系列前提条件。 ( 3 ) 解决方案( s o l u t i o n ) :描述了设计的组成成分,它们之间的相互关系及各自的 职责和协作方式。提供设计问题的抽象描述和怎样用一个具有一般意义的元素组合( 类 或对象组合) 来解决这个问题。 ( 4 ) 效果( c o n s e q u e n c e s ) :描述了模式应用的效果及使用模式应权衡的问题。模式 效果包括它对系统的灵活性、扩充性、可移植性的影响和对时间和空间的衡量,这有利 于理解和评价这些模式。 2 1 3 设计模式的分类 设计模式有很多不同的分类方法,本文主要根据以下几个方面来进行分类肺1 : ( 1 ) 根据应用的领域,设计模式分为通用领域的设计模式和特殊领域的设计模式。 特殊领域包括并发领域、分布式领域、持久化机制领域和时间领域等。 ( 2 ) 根据应用目的不同,设计模式分为创建型模式、结构型模式和行为型模式。创 建型模式与对象的创建有关,描述怎样创建一个对象,它隐藏对象创建的具体细节,使 程序代码不依赖具体的对象;结构型模式处理类或对象的组合,描述类和对象之间怎样 组织起来形成更大的结构,从而实现新的功能;行为型模式描述算法以及对象之间的任 务( 职责) 分配,它所描述的不仅仅是类或对象的设计模式,还有它们之间的通讯模式。 这三类设计模式分别描述了对象在创建、组合以及相互作用的过程中如何降低它们之间 的耦合性、提高复用性的成功方案。 ( 3 ) 根据模式是用于类还是用于对象,可将其分为类模式和对象模式。类模式处理 类和子类之间的关系,这些关系在编译时刻便确定下来,是静态的;对象模式处理对象 间的关系,这些关系在运行时刻是变化的,是动态的。 6 太原理工大学硕士研究生学位论文 2 2 设计模式的选择方法 使用设计模式需要根据实际情况,正确的选择模式。一般人们主要凭借对设计模式 功能的理解和自身的设计经验来选择,这就要求设计人员对所有的设计模式都有较深的 理解和掌握,这对初学者来说是比较难的。而对于模式选择方法的介绍,大多数文章书 籍都是基于单个方法的,并没有对方法间的联系加以阐述,容易导致人们孤立地看待问 题,不便于使用。下面介绍几种选择方法驯。 2 2 1g a m m a 选择方法 设计模式应该贯穿于系统的整个设计阶段,从基础对象的设计到功能、构件的实现。 如何把握适当的时机来运用设计模式,运用哪一种设计模式就成为了关键,文献 2 为 我们提出了设计模式的选择方式,总结如下: ( 1 ) 明确对象复用采用设计模式所处的阶段,看是属于对象的创建过程还是组合过 程还是交互过程,从而去查找能够完成对象复用的模式; ( 2 ) 分析设计的原因。获得最大限度复用的关键在于对新需求和己有需求发生变化 时的预见性,要求系统设计能够做出相应的改进。根据引起重新设计的原因,查看问题 是否与之相关,再找出哪些模式可以避免这些问题的出现; ( 3 ) 考虑设计中哪些是可变的。最主要的是封装变化,考虑各种设计模式允许独立 变化的方面,从而选择它们又不会导致重新设计。 2 2 2 相似性分析 模式选择就是从众多模式中选出一个最接近问题解决域的模式,许多模式之间存在 很多相似性,例如语义相似、结构相似、目标相似等订1 。 语义相似指两个模式采用的是同一领域的术语,模式之间的内部对象、属性及操作 之间存在明显的对应关系。 结构相似指两个模式间从结构上存在某种对应关系( 同构关系) ,主要反映在类的对 应( 角色的对应) 及类之间协作关系的对应上。 目标相似指两个模式所能达到的效果相似如t e m p l a t em e t h o d 模式可以封装一个算 法的固定部分,将可变部分通过继承方式具体实现,实现起来就是一个固定部分,一个 典型的框架。 7 太原理工大学硕士研究生学位论文 对模式相似性的分析和归类,在面对问题时我们就能够快速从众多模式选择出相应 的少数几个相似模式,大大缩小了选择的范围。 2 2 3 共同点变化点分析 美国软件工程师j i mc o p l i e n 认为:“共同点分析就是寻找共同的元素,它们帮助 我们理解家庭成员在哪些方面相同。即找出元素通过怎样的共同点定义它们所属的 家庭。变化点分析揭示出“家庭成员有什么不同 。共同点分析寻找一个不太可能随时 间变化的结构,而变化点分析捕捉有可能变化的结构。只有在共同点分析中分析变化点 才有意义。从体系结构的角度来说,共同点分析为体系提供耐久性;变化点分析让它适 应各种应用的需要。共同点将由抽象类来实现,而变化点分析发现的变化点将由具体类 来实现n 9 1 。 共同点变化点分析可以帮助我们认识和理解很多已有的模式,更重要的是“如何 使用共同点变化点分析来实现许多模式”。寻找共同点可以帮助我们发现问题领域中出 现的模式。 2 2 4 责任分解 共同点变化点分析确定了模式的共同点和每个特定的变化点。如果只考虑共同点 和使用共同点的对象,可以按照责任分解角度来考虑问题。在面对问题时,有时并不需 要被限制在只将问题领域分解成对象,也可以尝试将问题领域分解成责任。然后,就可 以定义实现这些责任需要的对象。通过将问题分解成责任,并定义这些责任的对象后, 就可以清楚地找出与之相关的模式唧。 很多特定的模式会协助我们考虑如何分解责任。比如说,如果把问题领域分解成一 定会使用的主要责任和可能会使用的变化点,那么d e c o r a t o r 模式就给出了一种灵活组 合对象的方法。s t r a t e g y 模式则将问题分解成“使用规则的对象 和“规则本身 。 2 3 设计模式的使用方法 2 3 1a i e x a n d e r 设计方法 a l e x a n d e r 认为只有根据在整体中的位置来定义每个部分,才可能让建筑物变得“适 合居住”,也就是设计“坚固而灵活的系统。首先,好的设计要求脑海中有宏观视图。 8 太原理工大学硕士研究生学位论文 其次,从场景中进行设计。然后,添加附加特征,逐渐让设计变得复杂。最后,定义问 题领域中实体之间的关联瞳5 1 。软件工程中实现步骤如下: ( 1 ) 发现问题领域中拥有的模式。这些是需要分析的模式。 ( 2 ) 对于这些需要分析的模式,做下列工作: 1 ) 挑出为其他模式提供最多场景的模式。 2 ) 在概念性最高的设计中使用这个模式。 3 ) 识别任何己经出现的附加模式。将它们添加到“需要分析的模式中 。 4 ) 对于需要分析而还未分析的模式,重复上述过程。 ( 3 ) 按照需要将细节添加到设计中。扩展方法和类定义。 设计模式给了我们起步的方法,然后你必须通过“识别问题领域中概念之间的关联 来填充剩余的部分,这就需要使用共同点变化点分析等模式选取方法。 2 3 2 发现并封装变化点 在创建对象时,一般使用共同点变化点分析作为主要工具。考虑系统需要什么变 化却又不会引起重新设计,也就是说要“发现并封装变化点”。在采用设计模式的时候, 实际上是把变化的部分进行了封装,把其中变化的和不变的部分进行解耦,利用接口或 者抽象类来采用某种模式进行设计。因此,获得软件复用的关键部分就是尽可能地去预 见软件的变化,并且把变化封装起来n 副。 在设计中,人们经常会用数据成员或继承的方法包容行为变化。假设动物有走和飞 两种移动方式。这样的需求就有两种不同的设计途径:一种是用一个数据成员来区别对 象拥有哪种移动方式;另一种是使用两种不同类型的动物派生类,一个表示会走的动物, 一种表示会飞的动物。但这两种途径都有问题,第一个途径用一个标志和可能建立在此 基础上的s w i t c h 语句,如果这个标志还暗示着其他的区别,可能引起紧耦合;第二个 途径需要同时管理动物的两个类,而且无法处理更多的移动方式和组合( 既会走又会飞 的动物) 。如果采用对象处理行为中的变化,类图如图2 一l 所示: 9 太原理工大学硕士研究生学位论文 图2 - 1 用对象来处理行为中的变化点 f i g u r e2 - 1p r o c e s sc h a n g i n gp o i n ti nb e h a v i o ru s i n go b j e c t 用“一个对象包含另一个对象 就可以有效地解决上面的问题。在面向对象程序设 计中,任何东西都是对象,即使内部数据类型也是对象,它们的行为就是算法。利用“对 象应该对自己负责”的性质,将对象用来处理行为中的变化点,使用包含对象来提供所 需的行为,是面向对象程序设计设计模式中常用的方法。 2 3 3 设计模式的具体化分析 设计模式有抽象度、适用范围的大小,适用的领域的差异。对于具体领域,具体化 的模式更容易理解,也具有更多的指导信息,所以也更易于复用。为了更好更快更合理 的使用设计模式,我们需要对设计模式进行具体化。 具体领域设计模式的产生可以通过两种方式,一种是设计模式采掘,即在应用系统 开发中将优秀的设计经验抽象成一种新的设计模式;另一种方法是将己有的成熟的设计 模式进行具体化,形成适合具体应用的设计模式n 7 1 。 1 模式采掘 当解决某个具体的设计问题时,如果没有一种合适的设计模式解决它,那么就可以 用“采掘”新设计模式的方法来解决这样的问题,步骤如下: ( 1 ) 证明一个特殊的设计或实现问题可以使用相同的解决方案或图式得以有效的解 决。证明的例子应该来自不同的现实世界系统; ( 2 ) 抽取出解决方案的图式。从具体应用的细节中抽象出一般的解决方案图式。使 用一个适合的模式描述模板,描述解决方案图式针对的问题,以及与问题相关的强制条 件,列举源于“己知应用”的解决方案图式的例子; ( 3 ) 宣布这个解决方案图式为“候选模式”,与其它人讨论改进模式的描述并且在项 目组中共享这个设计模式; 1 0 太原理工大学硕士研究生学位论文 ( 4 ) 在一个现实世界软件开发项目中应用“候选模式 ; ( 5 ) 如果应用是成功的,则这个候选模式成为正式的设计模式,否则继续试验。 2 设计模式的具体化方法 在解决一个应用系统的具体问题时,大多数情况下会先考虑使用已有的成熟的设计 模式。但是设计模式抽象度较高,未必完全适合系统设计中的实际问题,这时需要将己 有的设计模式进行具体化,使其成为具有更多指导信息的具体设计模式。下面是设计模 式进行具体化的方法汹1 : ( 1 ) 在结构上,增加子类,构造原模式中的某些类的子类,具体化原模式中的处理; 变通用名字为专用名字,名字也是限定一个模式应用范围的因素,通用名字适用范围更 大、含义更广,专用名词可以使该模式更具体,在某领域内更容易理解;由可变关系到 固定关系;具体化原模式中参与者。 ( 2 ) 在关系上,针对具体的应用,增加本应用通用的协作关系或根据应用特点,将 协作名称及协作内容具体化。 ( 3 ) 针对具体领域的模式往往比通用模式具有更多、更具体的约束,如对参与者个 数、参与者特征、协作时间和空间的约束等。增加新的约束条件和增强术语条件也是模 式具体化的一种方法。 2 3 4 设计模式在系统开发过程中的应用方法 研究设计模式的目的就是要把模式应用于软件开发过程中。下面我们把螺旋开发模 型进一步的具体化和细化,在系统的设计阶段引入设计模式,使用己经成熟的设计模式 来指导系统的设计和开发,以提高系统的开发效率n 羽。把设计模式引入到系统开发过程 模型的一次迭代过程如图2 2 所示。 ,_ 。一。, 系统开发过程 系统分析设计h 子系统分析设计h 1 一模式实例化 应用li 应用i 抽取 已有成熟设计模式),( 具体化的设计模式 具体化 图2 - 2 基于设计模式的系统开发过程 f i g u r e2 - 2s y s t e md e v e l o p m e n tp r o c e s sb a s e do nd e s i g np a t t e r n 太原理工大学硕士研究生学位论文 下面对图2 2 中所示的基于设计模式的系统开发过程进行介绍。 ( 1 ) 在系统的分析设计中,根据应用系统的具体需求按照功能把系统分成几个子系 统,同时确定子系统之间的交互关系,子系统继续细分更具体的功能需求。 ( 2 ) 在系统实现阶段,根据各个功能需求选择设计模式,可以通过参考前面选择设 计模式的方法来选择设计模式。选择己有的成熟设计模式解决系统设计中共性的问题; 选择具体化的设计模式来解决特有的问题。 ( 3 ) 选择满足功能需求的设计模式后,利用设计模式进行具体类的设计。 ( 4 ) 在应用系统的开发过程中,将解决该应用特有问题的良好的设计方案记录下 来,抽象成具体化的设计模式。一方面可以根据应用中的具体问题需求对己有成熟设计 模式进行具体化,或者对成熟设计模式进行改造或组合,以形成解决具体问题的具体设 计模式;另一方面可以从该应用特有问题的优秀的解决方案中抽取出新的设计模式。这 是一个循环迭代的过程,迭代过程如图2 - 3 所示: 经典设计模式卜_ 叫 l 改造或组合 模式改造 生鉴 色 j l 应用、卜皇- 一 具体化的设计模式ii 系统开发过程 抽取 图2 - 3 设计模式抽取应用迭代图 f i g u r e2 - 3c y c l ed i a g r a m so fd e s i g np a t t e r na b s t r a c t i o na n da p p l i c a t i o n 1 2 太原理工大学硕士研究生学位论文 第三章虚拟交易平台的构建方法和支撑技术 3 1 虚拟交易平台的体系结构 应用程序设计开发中最重要的元素之一就是系统体系结构。软件体系结构定义了软 件的局部和总体计算部件的构成,以及这些部件之间的相互作用关系。部件包括诸如服 务器、客户、数据库、过滤器、程序包、过程、子程序等一切软件的组成成份。相互作 用关系包括诸如过程调用、共享变量访问、消息传递等。相互作用

温馨提示

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

评论

0/150

提交评论