(电路与系统专业论文)设计模式在iESUGP中的应用与研究[电路与系统专业优秀论文].pdf_第1页
(电路与系统专业论文)设计模式在iESUGP中的应用与研究[电路与系统专业优秀论文].pdf_第2页
(电路与系统专业论文)设计模式在iESUGP中的应用与研究[电路与系统专业优秀论文].pdf_第3页
(电路与系统专业论文)设计模式在iESUGP中的应用与研究[电路与系统专业优秀论文].pdf_第4页
(电路与系统专业论文)设计模式在iESUGP中的应用与研究[电路与系统专业优秀论文].pdf_第5页
已阅读5页,还剩77页未读 继续免费阅读

(电路与系统专业论文)设计模式在iESUGP中的应用与研究[电路与系统专业优秀论文].pdf.pdf 免费下载

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

文档简介

山东大学硕士学位论文 摘要 模式研究源于建筑学,是由c h r i s t o p h e r a l e x a n d e r 在2 0 世纪7 0 年代提出的。软 件设计模式是模式发展的个重要分支,它隶属于软件工程领域。是针对面向对象 系统中,重复出现的设计问题提出的满足约束的解决方案。设计模式针对典型的设 计问题确定了所包含的类和实例,以及它们的角色、协作方式和职责分配。设计模 式给人们带来诸多好处,不但使人们可以复用成功的设计和体系结构,并能保证人 们软件开发的质量和效率。设计模式来源于实践,也在实践中指导人们的软件开发 和设计。 , i e s u g p 是i e s l a b 开发的一套通用图形平台主要用于公司所开发的各类电力 系统自动化主站系统。该系统包括众多复杂的设计问题,采用设计模式进行设计有 助于提高系统的可管理性、可维护性、可扩展性、可复用性及健壮性,同时可以减 少开发投入。本文详细介绍了采用i t e r a t o r 模式解决遍历环境库目录、采用p r o x y 模 式解决创建业务数据库访问代理等问题、采用b r i d g e 模式解决图形数据存储的多种 实现和采用c o m p o s i t e 模式解决图元分组管理,并对采用s i n g l e t o n 模式解决数据库 访问实例唯一性和采用s t a t e 模式解决建模组件中图形绘制的问题进行了简单介绍。 对每个问题,本文都从设计问题分析、选择某种设计模式、采用选定的模式进行设 计、以及设计的效果等方面进行了详细阐述,并对相应模式作了进一步地说明。本 文给出了5 个问题设计的u m l 图示,并对前4 个问题的解决提供了部分c 抖实现代 码。本文是利用设计模式解决实际设计问题的一次较大规模尝试的总结。 本文对设计模式进行了一定程度的探讨,从6 个侧面对设计模式进行了再认识, 总结了公共性可变性分析、开放- 封闭原则等7 条在设计模式中常用的面向对象规则, 并从面向对象设计的新角度对设计模式进行了回顾,对总结和描述新的设计模式提 出了初步设想。 本文将理论与实际相结合,详细介绍了如何借助设计模式解决实际问题,从两 提高软件设计质量并减少投入。说明如何从设计模式的意图、动机和适用性入手, 应用相对抽象的设计模式理论解决实际设计问题是本文的主要目的。 关键词:设计模式面向对象g o fi e s u g p 山东大学硕士学位论文 a b s t r a c t p a t t e r n sa r o s ef r o ma r c h i t e c t u r e ,t h e yw e r ea d v a n c e db yc h r i s t o p h e ra l e x a n d e ri nt h e s e v e n t i e so ft h et w e n t i e t hc e n t u r y s o f t w a r ed e s i g np a t t e mi sa l li m p o r t a n tb r a n c ho ft h e p a t t e r n s d e v e l o p m e n t i tb e l o n g st o s o f t w a r ee n g i n e e r i n gd o m a i n d e s i g np a t t e r n sa r e r e s o l u t i o n ss a t i s f i e df o r c e sf o rt h er e c u r r i n gd e s i g np r o b l e m si n0 0d o m a i n t h e yi d e n t i f y t h ep a r t i c i p a t i n gc l a s s e sa n di n s t a n c e s ,t h e i rr o l e sa n dc o l l a b o r a t i o n s ,a n dt h ed i s t r i b u t i o n o f r e s p o n s i b i l i t i e sf o rt h et y p i c a ld e s i g np r o b l e m s p e o p l eb e n e f i tm u c h f r o mt h e m t h e y m a k ei te a s i e rt or e u s et h es u c c e s s f u ld e s i g n sa n da r c h i t e c t u r e s ,a n dh e l pp e o p l ei m p r o v e t h eq u a l i t ya n de f f i c i e n c yo f t h es o f t w a r ed e v e l o p m e n t d e s i g np a t t e m sr o o ti np r a c t i c e ,a t t h es a m e t i m e ,t h e yd i r e c tp e o p l e ss o f t w a r ed e v e l o p m e n t a n d d e s i g ni nt h ep r a c t i c e t h ei e s u g p d e v e l o p e db yi e s l a b i sau n i f i e dg r a p h p l a t f o r m i t su s e dm a i n l yf o r a u t o m a t i o no f e l e c t r i cp o w e r s y s t e m s m a i n s t a t i o ns y s t e m d e v e l o p e db y t h ec o m p a n y t h e s y s t e mi n c l u d e sm a n yc o m p l i c a t e dd e s i g np r o b l e m s t od e s i g nu s i n gd e s i g np a t t e r n sc a l l h e l pi m p r o v em a n a g e a b i l i t y ,m a i n t a i n a b i l i t y , e x t e n s i b i l i t y , r e u s a b i l i t ya n dr o b u s t n e s so f t h es y s t e m ,a n dr e d u c ed e v e l o p m e n ti n v e s t m e n t t h e r ea r ef o u ri n s t a n c e st ob ei n t r o d u c e d i nd e t a i l e di nt h ep a p e r , t h e ya r et or e s o l v eg ot h r o u g hd i r e c t o r i e so ft h ee n v i r o n m e n tb a s e u s i n gt h el t e r a t o rp a t t e r n ,t or e s o l v ec r e a t i n ga c c e s sp r o x yo f t h eb u s i n e s sd a t a b a s eu s i n g t h ep r o x yp a t t e r n ,t or e s o l v et h em u l t i i m p l e m e n t so ft h eg d su s i n gt h eb r i d g ep a t t e m a n dt or e s o l v em a n a g e m e n tb yg r o u po ft h eg t y p h su s i n gt h ec o m p o s i t ep a t t e r n a n dt h e o t h e rt w oi n s t a n c e sa r ei n t r o d u c e ds i m p l y , t h e ya r et or e s o l v et h eu n i q u e n e s so ft h ed a t a a c c e s si n s t a n c eu s i n gt h es i n g l e t o np a t t e r na n dt or e s o l v eg r a p hd r a w i n gi nt h eb u s i n e s s m o d e l i n gu s i n gt h es t a t ep a t t e r n f o re v e r yp r o b l e m ,t h ef o l l o w i n ga s p e c t sa r ei n t r o d u c e d i nd e t a i l e d ,a n a l y s i so ft h ed e s i g np r o b l e m ,s e l e c t i n gs o m ep a t t e r n ,d e s i g n i n gu s i n gt h e s e l e c t e dp a t t e r na n dt h ec o n s e q u e n c eo f t h ed e s i g n s o m ef u r t h e re x p l a n a t i o na r eg i v e nf o r s o m er e l e v a n t p a t t e r n s a sw e l la s t h eu m ld i a g r a m sa r e p r o v i d e df o r f i v e d e s i g n p r o b l e m s a n ds o m ei m p l e m e n tc o d e su s i n gc + + a r ep r o v i d e df o rt h er e s o l u t i o n so f t h e p r e l i m i n a r yf o u rp r o b l e m s t h ep a p e ri s as u m m a r yf o rl a r g e r - s c a l ea t t e m p tr e s o l v i n g p r a c t i c a lp r o b l e m su s i n gd e s i g np a t t e r n s t h e n ,d e s i g np a t t e r n sa r ep r o b e di n t of u r t h e nt h e ya r eu n d e r s t o o da g a i nf r o ms i x a s p e c t s s e v e no op r i n c i p l e s a r es u m m a r i z e d ,i n c l u d i n gc o m m o n a l i t y v a r i a b i l i t ya n a l y s i s a n do c pa n ds oo n ,w h i c ha r eu s e dw i d e l yi nt h ed e s i g np a u e r n s d e s i g np a t t e r n sa r ea l s o r e v i e w e df r o mt h en e w p e r s p e c t i v eo f o o d s o m ep r i m a r yi d e a sa r ep r o v i d e df o r t h en e x t 4 一 坐变盔兰堡主堂垡笙垄 s t e pt os u m m a r i z e a n df i n dn e w d e s i g np a t t e r n s t h e p a p e ri n t e g r a t e st h et h e o r y w i t h p r a c t i c e ,a n di n t r o d u c e sh o w t or e s o l v ep r a c t i c a l p r o b l e m su s i n gd e s i g np a t t e r n st oi m p r o v e s o f t w a r ed e s i g nq u a l i t ya n dr e d u c ei n v e s t m e n t - i ti st h em a i n g o a l t o e x p l a i n h o wt o b e g i n w i t h p a t t e r n s i n t e n t ,m o t i v a t i o n a n d a p p l i c a b i l i t y a n dr e s o l v ep r a c t i c a ld e s i g np r o b l e m sa p p l y i n ga b s t r a c tt h e o r y o fd e s i g n p a t t e r n s k e yw o r d s :d e s i g n p a t t e r n s0 0g o fi e s u g p 山东大学硕士学位论叉 缩略词说明 b m ( b u s i n e s sm o d e l i n g ) :业务建模 c g s ( c o m m o n g r a p hs y s t e m ) :通用图形系统 c g s i ( c o m m o n g r a p hs y s t e mi n t e r f a c e ) :通用图形系统接口 g a l ( g r a p ha d a p t e rl a y e r ) :图形适配层 g d s ( g r a p h d a t a s t o r a g e ) :图形数据存储 g i s ( g e o g r a p h y i n f o r m a t i o ns y s t e m ) :地理信息系统 g o f ( g a n go f f o u r ) :指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 nv l i s s i d e s g p s ( g l o b a lp o s i t i o ns y s t e m ) :全球定位系统 g r a s p ( g e n e r a lr e s p o n s i b i l i t y a s s i g n m e n ts o f t w a r ep a t t e r n ) :通用职责分配软件模式 h m i ( h u m a nm a c h i n ei n t e r f a c e ) :人机界面 h m i f ( h u m a nm a c h i n ei n t e r f a c ef r a m e w o r k ) :人机界面框架 i e s u g p ( i e s l a bu n i f i e dg r a p hp l a t f o r m ) :i e s l a b 统一图形平台 m a p x ( m a pa c t i v e x ) m 0 ( m a po b j e c o o c p ( o p e n - c l o s e dp r i n c i p l e ) :开放一封闭原则 0 0 ( o b j e c t - o r i e n t e d ) :面向对象 o o a ( o b j e c t o r i e n t e da n a l y s i s ) :面向对象分析 o o a d ( o b j e c t - o r i e n t e da n a l y s i sa n dd e s i g n ) :面向对象分析和设计 g o d ( o b j e c t o r i e n t e dd e s i g n ) :面向对象设计 p l o p ( p a t t e ml a n g u a g e so f p r o g r a m s ) :编程模式语言 q w a n ( q u a l i t y w i t h o u ta n a m e ) :无名的质 s g l ( s t a n d a r dg r a p hl a y e r ) :标准图形层 s g l i ( s t a n d a r d g r a p h l a y e r i n t e r f a c e ) :标准图形层接口 u m l ( u n i f i e dm o d e l i n gl a n g u a g e ) :统一建模语言 5 山东大学硕士学位论文 第一章引言 1 1 课题研究的背景 随着信息技术的进步,计算机的应用已经深入到现代生活的所有方面。由于计 算机硬件技术按照摩尔定律飞速发展,硬件费用所占计算机系统总费用的比例越来 越低,而软件费用从上一世纪6 0 年代前的2 0 ,迅速上升到8 0 年代后期的8 0 , 今天已经远超过这个数字。为了提高软件设计的效率和质量,人们对软件设计方法 进行了大量的研究,从6 0 7 0 年代的结构化方法发展到8 0 年代以后至今仍方兴未 艾的面向对象( o o ) 技术。现在,o o 技术的应用已经普及,对o o 技术的研究也越 来越受到人们的重视。 般都认为设计o o 软件比较困难,而设计可复用的o o 软件就更加困难。人 们的设计不但要对手头的问题有针对性,而且也要有足够的通用性,以满足将来的 问题和需求。人们希望避免重复设计。大量的重复设计不仅效率低下,而且软件的 可靠性也难以保证。 有经验的o o 设计者的确能做出良好的设计,原因在于他们知道一些一般人所 不知道的东西。事实上不是解决任何问题都要从头开始。有经验的o o 设计者更愿 意复用以前的好的解决方案。当找到一个好的解决方案,他们会反复使用。因此, 我们会在许多o o 系统中看到相似的类和相互通信的对象。这些模式解决特定的问 题使o o 设计更灵活、优雅,最终复用性更好。它们帮助设计者将新的设计建立在 以往工作的基础上,复用以往成功的解决方案。一个熟悉这些模式的设计者不需要 再去发现它们而能够立即将它们应用于设计问题中。 设计经验的价值不言而喻,软件设计模式就是这些设计经验中的精华。自软件 设计模式提出以来,特别是g o f ( g o f 指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 ,因四人合著了( 1 1 ,人们习惯上称他们为g a n g o f f o u r ,简称g o f ) 的设计模式【1 发表以来,设计模式的应用越来越广泛。如今,几乎在任何系统、 任何一个应用中,都可以找到设计模式的影子。 设计模式如此受到人们的关注,是因为设计模式具有诸多优点,使人们可以更 加简单方便地复用成功的设计和体系结构,提高设计效率,降低成本,保证系统可 靠性,提高系统可维护性。 山东大学硕士学也论文 i e s u g p 3 是作者参与开发的一个复杂的通用图形系统,该系统包括大量设计问 题,保证设计质量,保证系统的设计更具灵活性、复用性、可维护性、可扩展性是 我们必须解决的重要问题。本文就是利用设计模式解决实际设计问题的一次较大规 模尝试的总结。 1 2 课题研究的主要任务、意义和要求 本课题是一个实际开发项目的一部分,主要任务是将设计模式,特别是g o f 设 计模式与i e s u g p 有机地结合,充分发挥设计模式的优势,解决实际的设计问题, 从而简化系统设计,提高设计质量,并且减少开发投入。 作为课题的一部分,还应结合实践提出一套行之有效的选择和使用设计模式解 决实际问题的方法步骤,并且对所用设计模式进行探讨。 本课题首先要求有一定的o o a d 和u m l 应用的基础,其次对设计模式尤其是 g o f 设汁模式有较深的认识和理解,还要求掌握c c + + 语言编程以及q t3 1 1 、 m i c r o s o f tv i s u a lc + + 6 0 、r a t i o n a lr o s e2 0 0 2 、s q ls e r v e r 2 0 0 0 、o r a c l e 8 t 7 等软件的 使用,并且能够按照相应的标准和要求编写和测试代码,保证设计出可靠且实用的 软件系统。 1 3 论文各部分的主要内容 本文主要研究g o f 设计模式在i e s u g p 中的应用。 第二章,对模式和设计模式进行简单介绍,同时给出了在软件开发中选择和使 用设计模式的一般过程。 第三章,重点就i e s u g p 中的6 个设计问题给出了采用设计模式进行设计的解 决方案。对每个问题都从设计问题分析、选择某种设计模式、采用选定的模式进行 设计、采用选定模式设计的效果等方面进行了详细阐述,并对相关模式作了进一步 说明。并对其中的4 个实例给出了部分c + + 代码实现。 第四章,对模式和设计模式进行再认识,总结在设计模式中常用的o o 原则, 对设计模式进行回顾,就总结新的设计模式进行探讨。 第五章,对本课题工作进行总结。 山东大学硕士学位论文 第二章模式和设计模式简介 2 1 模式简介 一般认为模式的研究源于建筑学。 2 0 世纪7 0 年代,为了解决“什么东西在一个高质量的设计中表现出来而没有出 现在低质量的设计中? ”这一问题,著名的建筑工程设计大师c h r i s t o p h e r a l e x a n d e r 研究了大量的建筑物、城镇、街道以及人类为自己建殴的生活空间的各个方面,并 写了t h eo r e g o ne x p e r i m e n t ( 俄勒冈实验) 、ap a t t e r nl a n g u a g e :t o w n s , b u i l d i n g s , c o n s t r u c t i o n ( 建筑模式语言) 及t h et i m e l e s sw a y o f b u i l d i n g ( 建筑的永恒之道) 等几部名著。 在这些著作里,a l e x a n d e r 描述了一些他认为是永恒的,适合于任何工程学科的 设计原则,即建筑的永恒之道。它们是建立在质、门、道三个基本概念之上的。 a l e x a n d e r 认为,所有的生物、有用之物,均包涵有如下的“质”:自由性,整 体性,完备性,舒适性,和谐性,可居住性,持久性,开放性,弹性,可变性,以 及可塑性。质或无名的质( q w a n ) 使人感到充满活力,给人以满足感,并最终改善人 类的生活。 “门”( t h eg a t e ) 是通向“质”的管道,是通过个普遍的模式语言来体现的, 该模式语言使设计师能够刨建多种形式的设计,以满足多方面的需求。“门”是普遍 存在的,是这些模式之间的关系,充满着一个特定的域。 利用“道”( t h ew a y ) 从“门”演化到“质”的过程,就是把一些特定的模式按 照一定的顺序应用到系统设计上的循序渐进的过程,就像是胚胎发育的过程。通过 追寻“道”,可以通过“门”到达“质”【6 】。 把a l e x a n d e r 的观点映射到软件设计中可作如下理解: q w a n 意味着一个软件的内在属性不仅存在于该软件中,而且存在于该软件与 其它软件,与计算机外部世界,特别是用户的相互作用中。q w a n 被映射到人脑中 之后,将变成“有名”的“质”,包括软件性能要求的可变性,软件的可用性:以及 系统的可扩展性、灵活性等等。 “门”是指程序源代码。这些源代码汇聚而形成一个有机体:而其中的一部分 重复出现,构成对一些典型问题的典型解决方案,这就是模式。一个模式中会存在 9 山东大学硕士学位论文 几个角色,这些角色本身也是“门”汇聚而成;并且通过“门”相互作用。 q w a n 必须通过对“道”的追随,经过“门”而实现。“开放封闭”原则就非 常接近这样的“道”。 软件的设计,必须从软件的整体属性,即q w a n 出发,逐步分解设计。只要能 保证q w a n 不受软件性能要求变化的影响,就能保持软件设计的稳定性。而这就是 软件设计的永恒之道。 c h r i s t o p h e r a l e x a n d e r 提出:每一个模式描述了个在我们周围不断重复发生的 问题,以及该问题的解决方法的核心。这样我们就可以一次又一次地使用该方案, 而不必每次都做重复的工作。模式为了解决几乎所有的设计问题而存在,并且可以 组合来解决复杂问题【4 。可见,模式是描述特定场景、特定约束下对特定问题的解 决方案的专用语言,同时该方案具有q w a n 。 对于模式,现在还没有一个令所有的人都满意的术语定义,不同的人有不同的语 言叙述,但归根到底他们所表达的核心内容是一致的。 模式是在某种特定的场景下对某个重复出现的问题提出的解决方案。模式本身并 没有任何的创新性,它们仅仅是对于一些已经被证明为优秀的解决方法的归类、总 结,目的是为了重用该解决方案而不必做重复的劳动。 a l e x a n d e r 把模式的集合称为模式语言( p a t t e r nl a n g u a g e ) 。模式语言并不是正规语 言,而是一种相互关联的模式集合。只有模式语言才可以描述q w a n 5 6 。 不管如何叙述,为了便于应用,一个模式一般应具备下面几个要素: 夺模式名称( p a t t e r nn a m e ) :一个助记名,用一两个词来描述模式的问题,解决 方案和效果。 夺场景( c 0 1 t e x t ) :什么时候以及为什么应用或不应用某模式。 夺限制( f o r c e s ) :模式应用的限制和动机。 夺问题( p r o b l e m ) :需要解决的重复出现的问题。 夺解决方案( s o l u t i o n ) :设计的组成部分,它们之间的相互关系及各自的职责和 协作方式。 模式被提出后,得到了很多人的响应。取得了快速发展,从原先的建筑领域逐 渐扩展到其它众多的领域,其中软件模式( s o f t w a r ep a t t e r n ) 就是其中的一个重要分支。 软件模式是将“模式”的一般概念用于软件开发领域。可以认为软件模式是对 软件开发这一特定“问题”的“解法”的某种统一表示 7 】,即 0 山东大学硕士学位论文 软件模式= 一定状况下的 问题+ 解法 如图2 1 所示,软件模式的基础结构由4 个部分构成:问题、约束条件、解法和 适用结果。 图2 - 1软件模式基础结构图 是不是软件模式取决于是否按照模式的基本构成方式来描述,而与问题域和以 软件生存期的哪一阶段为对象无关。 根据软件模式的基本构成,可以按模式用户的问题域特征来分类,如系统结构 化、分散系统、交互系统、结构分割、存取控制、作业管理、服务多样化、服务扩 充、通信、资源管理等 7 1 ;也可以从抽象级别上来分类,如体系结构模式、设计模 式、惯用法( i d i o m ) 等【8 :也可以从应用领域来分类,如分析模式 9 】、设计模式、过 程模式【1 0 】、组织模式 1 1 、项目计划模式、配置管理模式、测试模式等。 根据软件工程的分割原则,可以对模式进行多层次细分,所以软件模式究竟有 多少类多少种,现在尚不能定论。 2 2 设计模式简介 尽管a l e x a n d e r 指的是城市和建筑模式,但他的思想同样适用于o o 设计模式。 只是在o o 解决方案里,我们用对象和接口代替了墙壁和门窗 1 ,2 。两者的核心都在 于提供了相关问题的解决方案。 2 2 r 1设计模式的发展及概念 设计模式在软件设计行业中的起源可以追溯到1 9 8 7 年。当时,w a r dc u n n i n g h a m 和k e n tb e c k 一起用s m a l l t a l k 做设计用户界面的工作。他们决定用a l e x a n d e r 的理论 发展出一个有五个模式的语言来指导s m a l l t a l k 的新手,因此他们写成了u s i n g p a t t e r n l a n g u a g e s f o ro b j e c t - o r i e n t e dp r o g r a m s 论文。 之后不久,j i mc o p l i e n 开始搜集c + + 语言的i d i o m s 并发表在1 9 9 1 年出版的 a d v a n c e d c + + p r o g r a m m i n g s t y l e s a n d i d i o m s 一书中。 从1 9 9 0 到1 9 9 2 年,g o f 成员开始他们搜集模式的工作。关于模式的讨论和工 山东大学硕士学位论文 作会议则一再举行。 1 9 9 3 年8 月,k e n t b e c k 和g r a d y b o o c h 主持召开了第一次关于模式的正式会议。 模式研究的主要人物都参加了这次会议,包括:j i mc o p l i e n ,d o u gl e a ,d e s m o n d d s o u z e ,n o r mk e r t h , w o l f g a n gp r e e 等【5 】。 1 9 9 4 年l o 月g o f 的d e s i g np a t t e r n s :e l e m e n t so f r e u s a b l eo b j e c t - o r i e n t e d s o f t w a r e 发表了,该书堪称是这一阶段工作的里程碑。 此书发表后,参加模式研究的人数及被确定为模式的结构的数目呈爆炸式增长。 p l o p 大会每年次定期在美国举行,大会的论文也汇编成书并公开发表 1 2 。 对于设计模式,同样没有一个统一的概念。我们可以这样理解:设计模式隶属于 软件工程领域。设计模式是针对面向对象的系统中重复出现的设计问题提出的一种 满足各限制条件的解决方案,并对该解决方案进行系统化的命名和动机解释。孩解 决方案是解决该问题的一组精心安排设计的通用的类和对象,再经定制和实现就可 用来解决特定上下文中的问题。一个设计模式命名、抽象和确定了一个通用设计结 构的主要方面,这些设计结构能被用来构造可复用的面向对象设计。设计模式确定 了所包含的类和实例,它们的角色、协作方式和职责分配。设计模式不是被发明的, 而是被发现总结出来的 1 ,2 】。 根据抽象级别,可将设计模式分为三层。上层抽象级别较高,描述了复杂的对整 个应用或子系统的设计:中间一层是对在特定场景下一般的设计问题提出的解决方 案;底层是一些更加具体的简单重用设计类,如链表、h a s h 表等。 2 2 2g o f 设计模式简介 g o f 的设计模式属于三层抽象中的中间一层,通常所指的设计模式一般也是指 这层。g o f 的设计模式是对在特定场景下解决一般设计问题的类和相互通信的对 象的描述【1 ,2 。他们仅仅包含了一个设计模式行家所知道的部分,没有讨论与并发 或分布式或实时程序设计有关的模式,也没有收录面向特定应用领域的模式。 g o f 采用目的- 范围( p u r p o s e s c o p e ) :维表的方式对2 3 个设计模式进行了分类。 根据目的原则,分为创建型( c r e a t i o n a l ) 、结构型( s t r u c t u r a l ) 和行为型( b e h a v i o r a l ) 三种。 根据范围准则,每种类型的模式分为类模式和对象模式两种。 ( i ) 创建型摸式g o f 提供了5 种创建型模式,即a b s t r a c tf a c t o r y ,b u i t d e r _ f a c t o r ym e t h o d ,p r o t o t y p e ,s i n g l e t o n 。它们抽象了实例化过程,帮助一个系统独立于 如何剑建、组合和表示它的那些对象。一个类创建型模式使用继承改变被实例化的 山东大学硕士学位论文 类,而一个对象刨建型模式将实例比委托给另一个对象。 创建型模式在伊么被刨建,稚创建它,它是怎谤被创建的以及觥4 建这些 方面给予很大的灵活性。它们允许人们用结构和功能差别很大的“产品”对象配置 一个系统。配置可以是静态的,也可以是动态的。 ( 2 ) 结构型模式结构型模式涉及到如何组合类和对象以获得更大的结构,共 有7 个。结构型类模式采用继承机制来组合接口或实现。类形式的a d a p t e r 模式对一 个a d a p t e e 类进行私有继承,从而用a d a p t e e 的接口表示它的接口。结构型对象模式 描述了如何对一些对象进行组合从而实现新的功能。 c o m p o s i t e 模式描述了如何通过递归组合方式形成任意复杂的结构。p r o x y 模式 为其它对象提供一种代理以控制对这个对象的访问。f l y w e i g h t 模式运用共享技术有 效地支持大量细粒度的对象。f a c a d e 模式则描述了如何用单个对象表示整个子系统。 b r i d g e 模式将对象的抽象和其实现分离,从而可独立地改变它们。d e c o r a t o r 模式采 用递归方式组合对象,允许人们动态垃为对象添加职责。 许多结构性模式在某种程度上具有相关性。 ( 3 ) 行为型模式行为模式涉及到算法和对象间职责的分配。行为模式不仅描 述对象或类的模式,还描述它们之间的通信模式。这些模式描绘了在运行时难以跟 踪的复杂的控制流。它们将人们的注意力从控制流转移到了对象间的联系方式上。 行为类模式使用继承机制在类间分派行为。在t e m p l a t em e t h o d 模式中,模板方 法是一个算法的抽象定义,它逐步地定义该算法,每一步调用一个抽象操作或一个 原语操作,子类定义抽象操作以具体实现该算法。而i n t e r p r e t e r 模式将一个文法表示 为一个类层次,并实现一个解释器作为这些类的实例上的一个操作。 行为对象模式使用对象复合而不是继承。一些行为对象模式描述了一组对等的 对象怎样相互协作以完成其中任一个对象都无法单独完成的任务。m e d i a t o r 模式在 对等对象间引入一个m e d i a t o r 对象提供松耦合所需的间接陛,以避免某些对象对其 它对象的显式引用。c h a i no f r e s p o n s i b i l i t y 模式则让人们通过一条候选对象链隐式地 向一个对象发送请求。o b s e r v e r 模式定义并保持对象间的依赖关系,当目标发生变 化时,所有依赖于它的观察者都得到通知。 其它的行为对象模式常将行为封装在一个对象中并将请求指派给它。s t r a t e g y 模 式将算法封装在对象中,这样可以方便地指定和改变一个对象所使用的算法。 c o m m a n d 模式将请求封装在对象中,这样它就可作为参数来传递,也可以被存储在 山东大学硕士学应论文 历史列表里,或者以其它方式使用。s t a t e 模式封装一个对象的状态,使得当这个对 象的? 状态对象变化时,该对象可改变它的行为。v i s i t o r 模式封装分布于多个类之间 的行为,而i t e r a t o r 则抽象了访问和遍历一个聚合中的对象的方式。 2 _ 2 3 其它设计模式 g o f 设计模式是目前己经公认的经典模式。除g o f 模式以外,还有大量其它模 式,这些模式也许现在应用还不够广泛,还不够成熟,甚至有些还没有被命名,但 随着软件设计实践的发展,它们中必定有些会成为未来的经典模式,因此也应该受 到重视。非g o f 设计模式囊括了众多的领域。这些领域包括并发应用、分布式应用、 实时程序设计、面向事务、面向数据库、面向测试等等f 1 4 - 2 2 j 。 2 2 。4 设计模式给人们带来了什么 大量的实践证明,设计模式给人们带来了许多好处,例如 1 2 1 3 1 : 夺有助于设计的重用和人们之间的交流 夺给出了关于分析和设计的更高层次的视点 夺提高了团队交流能力和个人学习能力 夺提高了代码的可修改性 夺阐释了基本的o o 原则 夺即使不直接使用设计模式,也能从中受益并做出好的殴汁 夺有助于发现对大型继承层次的替换方案 设计模式不仅絮助人们更加简单方便地复用成功的设计和体系结构,还使人们 的设计有利于系统复用性。理解了设计模式,人们就可以吸取那些蕴含其中的宝贵 经验,对o o 系统有更为完善的了解。更重要的是,这些模式都可以直接用来指导 o o 系统中至关重要的对象建模问题。如果有相同的场景,直接复用这些模式就可以 了。通过提供一个显式类和对象作用关系以及它们之间潜在联系的说明规范,没计 模式甚至能够提高已有系统的文档管理和系统维护的有效性。总之设计模式可以使 人们更快更好地完成系统设计 1 ,2 。 2 3 选择和使用设计模式的一般过程 在软件开发过程中选择和应用设计模式过程可用图2 - 2 简单表示: 4 山东大学硕士学使论文 图2 - 2 软件开发过程中选择和使用设计模式一般过程简图 在没有设计模式知识的情况下,要开发一套系统,人们只能是从已有的知识库中 选择需要的知识进行一段开发过程从而创建出希望的系统。 当有了设计模式知识后,人们会根据当前的问题,从设计模式库中选择合适的模 式( 组) 然后将它们应用到开发过程中,从而创建出新的系统。一般来说,这样的 系统比前者质量更好,更容易节约人们的开发投入。 山东大学硕士学位论文 第三章设计模式在i e s u g p 中的应用 设计模式是前人设计经验的精华,如何使源于实践的设计模式在实践中指导我们 的设计工作,是一个很有意义的问题。本课题是一个实际软件开发项目的组成部分。 本章以i e s u g p 的设计为背景,说明如何采用g o f 设计模式来解决其中几个有代表 性的问题。 3 1 j e s u g p 项目概述 在设计、实现不同的应用系统时,通常因为缺乏通盘的考虑,在一定程度上会导 致几个系统都在类似的方面投入大量的资源进行开发,并且各个分支独立发展。这 样既浪费了资源,又很难做到有层次的系统更新和功能提升,从另一方面讲也很难 对应用需求作出及时反应。 同类型的业务应用对图形界面提出了具有共性的需求。这就要求人们在开发某种 业务应用时进行全面地考虑,以便于系统的复用和扩展,减少重复劳动。 在监控领域,调度自动化、配电自动化、电能量采集与监视、公用事业( 如水、 煤气、供暖等) 等都需要有良好的图形监控环境,同时它们又有许多共同之处,很 有必要建立一套灵活通用的业务基础软件平台。i e s u g p 正是基于此需求面开发的。 i e s u g p 是i e s l a b 开发的一套通用图形平台,主要用于公司所开发的各类电力 系统自动化主站系统。i e s u g p 具有友好的面向电力应用的人机界面环境,是一个完 整的监控系统,用户只需进行简单定制就可以创建一个需要的界面系统。该系统具 备基本的地理信息功能( 载入地理底图、定位等) ,但不是真正意义的g i s 系统。 i e s u g p 的设计实现必须满足跨平台( w i n d o w s 和u n i x ) 建模的接口需求及配网管 理功能需求。设想的体系结构 3 如图3 1 所示: 该设计框架中主要包括以下部分: ( 1 ) 人机界面h m i h m i 主要提供业务信息展示、图形漫游及过滤显示、业务模型对象属性展示。 同时还要提供多功能信息监视窗、图形打印、背景图形管理功能,能够支持多媒体、 可交互的h t m l 窗口。另外h m i 还具有启动运行环境,事件处理,安全登录以及 w e b 发布等功能。 6 山东大学硕士学位论文 图3 - 1i e s u g p 体系结构图 ( 2 ) 业务建模b m b m 是一个可视化的建模工具。b m 支持多人多点建模;支持批量设备绘制及属 性修改;能够检查图间的拓扑关系是否匹配;可以进行连通测试,脱网设备检测; 可以根据母线的个数和间隔的个数生成站内接线图。 b m 支持对拓扑关系的拷贝、粘贴,标识用户必添字段,通过g p s 生成杆塔等。 b m 对操作人员进行安全认证;支持以馈线锁定为基础的安全编辑权限;能记录 影响电网模型的每次操作的完整信怠:可以检测图形和模型数据的完整一致性。 ( 3 ) 人机界面框架h m i f h m i f 定义一套访问接口,用于查询h m i f 中当前可用的接口和对象,供h m i 、 插件、内置函数、脚本引擎运行时调用。 丑订i f 具有如下功能:通信服务管理,应用 程序内部事件通知,定义插件接口规范,窗口管理,动作定义及响应。图形编辑, 系统运行信息的记录与显示等。 ( 4 ) 标准图形层s g l s g l 的主要功能包括:图模库管理:坐标转换;图形显示、缩放、漫游、编辑 等;对图件进行有关的编辑及相关操作;支持图形数据交换:支持图形打印。 ( 5 ) 图形数据存储g d s g d s 能够方便地供s g l 调用,其目的是为了保存s g l 所用到的图形并支持对 图形对象的相关操作。要求

温馨提示

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

评论

0/150

提交评论