(计算机应用技术专业论文)基于设计模式的物资管理系统的研究与实现.pdf_第1页
(计算机应用技术专业论文)基于设计模式的物资管理系统的研究与实现.pdf_第2页
(计算机应用技术专业论文)基于设计模式的物资管理系统的研究与实现.pdf_第3页
(计算机应用技术专业论文)基于设计模式的物资管理系统的研究与实现.pdf_第4页
(计算机应用技术专业论文)基于设计模式的物资管理系统的研究与实现.pdf_第5页
已阅读5页,还剩51页未读 继续免费阅读

(计算机应用技术专业论文)基于设计模式的物资管理系统的研究与实现.pdf.pdf 免费下载

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

文档简介

大连理t 大学硕士学位论文 摘要 传统软件丌发中固有的复杂性、软件产品的不易重复性,严重制约了软件产品的生 产。如何提高软件产品的复用性,缩短软件开发的周期,降低软件产品的维护成本,成 为软件业普遍关注的问题。在软件开发过程中引入设计模式思想,能够提高软件产品的 复用性,降低软件产品的维护难度,进而提高软件产业的生产效率。 本文首先介绍了选题的背景、意义及设计模式在国内外的研究现状。接下来介绍了 设计模式的基本理论,包括设计模式的概念、原则、分类、要素、描述形式等,并分析 了设计模式与面向对象技术相结合的意义。在后续章节中,本文通过一个具体的开发实 例,着重介绍了如何在面向对象的软件开发中引入设计模式思想。在充分掌握用户需求、 对系统功能建模的基础上,本文将系统的体系结构划分为表示层、业务逻辑层和数据库 访问层三层,并根据不同层次的需求特点及功能要求,将设计模式思想引入到系统的具 体丌发过程中。在数据库访问层中应用了具有简单工厂特质的抽象工厂模式,以满足业 务逻辑层对数据源的访问需求。在业务逻辑层中应用了单例模式、观察者模式、策略模 式和桥模式等设计模式,以满足系统的功能性需求。在表示层应用了m v c 模式,在为 用户提供友好的交互接口的同时提升了系统的性能。 本文通过在具体项目中应用设计模式思想,使系统的内聚性、复用性得到很大的提 高,降低了系统功能模块间的耦合,同时也降低了系统的后期维护难度,增强了系统的 适用性、扩展性及可移植性。从而客观的证明了将设计模式思想运用在面向对象技术中 的意义及重要性。 关键词:设计模式;面向对象;软件建模;物资管理系统 大连理工大学硕士学位论文 r e s e a r c ha n di m p l e m e n t a t i o no fm a t e r i a lm a n a g e m e n t s y s t e mb a s e do n d e s i g np a t t e m a b s t r a c t t h ei n h e r e n tc o m p l e x i t yo ft r a d i t i o n a ls o f t w a r ed e v e l o p m e n t a n dl o wr e u s a b i l i t yo f s o f t w a r ep r o d u c t s ,s e v e r e l yr e s t r i c t st h ep r o d u c t i o no fs o f t w a r ep r o d u c t s h o wt oi m p r o v et h e r e u s a b i l i t yo fs o f t w a r ep r o d u c t s ,s h o r t e nt h es o f t w a r ed e v e l o p m e n tc y c l e ,a n dr e d u c i n g s o f t w a r em a i n t e n a n c ec o s t sb e c o m e st h ec o m m o nc o n c e r n e di s s u ei ns o f t w a r ei n d u s t r y d e s i g n p a t t e r nm e t h o du s i n gi ns o f t w a r ed e v e l o p m e n tp r o c e s s ,i m p r o v e st h er e u s a b i l i t yo fs o f t w a r e p r o d u c t s ,r e d u c e st h ed i f f i c u l t yo fs o f t w a r ep r o d u c tm a i n t e n a n c ea n dt h e ni m p r o v e st h e s o f t w a r ep r o d u c t i o ne f f i c i e n c y f i r s t l y , t h i sd i s s e r t a t i o ni n t r o d u c e st h es u b je c tb a c k g r o u n d ,s i g n i f i c a n c ea n dr e s e a r c h e so n d e s i g np a t t e r n sa th o m ea n da b r o a d t h e ni n t r o d u c e st h eb a s i ct h e o r yo fd e s i g np a t t e r n s , i n c l u d i n gc o n c e p t so f d e s i g np a t t e r n s ,p r i n c i p l e s ,c l a s s i f i c a t i o n s ,e l e m e n t sa n dd e s c r i b i n gf o r m s , a n da n a l y s i st h es i g n i f i c a n c eo fc o m b i n a t i o no fd e s i g np a t t e r n sa n d o b i e c t o r i e n t e dt e c h n i q u e c h a p t e r si nt h ef o l l o w u pf o c u so nh o wt ou s et h em e t h o do fd e s i g np a t t e r n si no b j e c t o r i e n t e d s o f t w a r ed e v e l o p m e n tb yt h ed e v e l o p m e n to fas p e c i f i cc a s e b a s e do nt h ef u l lg r a s po fu s e r r e q u i r e m e n t sa n ds y s t e mf u n c t i o n a lm o d e l i n g , t h i sp a p e rd i v i d e st h es y s t e ma r c h i t e c t u r ei n t o p r e s e n t a t i o nl a y e r , b u s i n e s sl o g i cl a y e ra n dd a t a b a s ea c c e s sl a y e rt ob ea st h et h r e e 1 a y e r a r c h i t e c t u r e t h eu s eo fd e s i g np a t t e r n si ns y s t e md e v e l o p m e n tp r o c e s si si na c c o r d a n c ew i t h t h ef e a t u r e so fd i f f e r e n tl a y e r s a b s t r a c tf a c t o r yp a t t e r nw i t hc h a r a c t e r i s t i c so fs i m p l ef a c t o r yi su s e di nd a t a b a s ea c c e s s l a y e rt om e e tt h es y s t e ma c c e s sr e q u i r e m e n to f m u l t i p l ed a t as o u r c e s i n g l e t o np a t t e r n ,o b s e r v e r p a t t e r n ,s t r a t e g yp a t t e r na n db r i d g ep a t t e r ni su s e di nt h eb u s i n e s sl o g i cl a y e ri no r d e rt om e e t s y s t e mf u n c t i o n a lr e q u i r e m e n t m v cp a t t e r ni sa p p l i e dt op r e s e n t a t i o nl a y e rt oi m p r o v es y s t e m p e r f o r m a n c e d e s i g np a t t e r nm e t h o du s i n gi nt h es p e c i f i cp r o j e c tp r o v i d e db yt h i sp a p e rg r e a t l y i m p r o v e st h er e u s a b i l i t yo fs y s t e m ,n o to n l yr e d u c e st h ec o u p l i n gb e t w e e ns y s t e mm o d u l e s ,b u t a l s or e d u c e st h em a i n t e n a n c ed i f f i c u l t yo nl a t e rp e r i o da n de n h a n c e st h es y s t e ma p p l i c a b i l i t y a n dp o r t a b i l i t y t h e r e f o r et h es i g n i f i c a n c ea n di m p o r t a n c eo fa p p l i c a t i o no fd e s i g np a t t e r n s m e t h o di no b j e c t - o r i e n t e dt e c h n i q u ei si m p r o v e do n e c t i v e l y k e yw o r d s :d e s i g np a t t e r n ;o b j e c t o r i e n t e d ;s o f t w a r em o d e l i n g ; m a t e r i a lm a n a g e m e n ts y s t e m i i i 火连理j :大学硕十学位论文 大连理工大学学位论文版权使用授权书 本人完全了解学校有关学位论文知识产权的规定,在校攻读学位期间 论文工作的知识产权属于大连理工大学,允许论文被查阅和借阅。学校有 权保留论文并向国家有关部门或机构送交论文的复印件和电子版,可以将 本学位论文的全部或部分内容编入有关数据库进行检索,可以采用影印、 缩印、或扫描等复制手段保存和汇编本学位论文。 学位论文题目: 作者签名: 导师签名: 大连理工大学学位论文独创性声明 作者郑重声明:所呈交的学位论文,是本人在导师的指导下进行研究 工作所取得的成果。尽我所知,除文中已经注明引用内容和致谢的地方外, 本论文不包含其他个人或集体已经发表的研究成果,也不包含其他已申请 学位或其他用途使用过的成果。与我一同工作的同志对本研究所做的贡献 均已在论文中做了明确的说明并表示了谢意。 若有不实之处,本人愿意承担相关法律责任。 学位论文题目:垄王遮盐越趱塑笠生毽塞盈鲤趔地 作者签名:整施日期:星! ! 乞年互月卫日 人连理上人学硕十学位论文 1 绪论 1 1 论文研究的背景 随着信息化技术的发展,信息化技术在企业中的应用受到越来越多的重视,企业对 信息化产品的依赖程度也变得越来越高,各种类型的软件产品在企业中的应用变得日趋 频繁。然而,目前软件产品的生产力却显得相对不足。软件开发固有的复杂性、软件产 品的不易重复性,严重制约了软件产品的生产。在此背景下,在软件开发过程中引入设 计模式思想,能在一定程度上提高软件产品的复用性,缩减软件产品的开发周期,进而 提高软件产品的生产力,缓解传统软件开发中的固有不足。 1 2 研究的目的和意义 传统软件开发中存在着诸多问题,如开发进度难以控制、工作量难于准确估计、软 件成本居高不下、交付后的软件质量不够理想、后期软件修改与维护困难、软件成功率 不高等。软件工作者一直在对软件开发方法与过程进行研究与探索,试图对软件产品进 行进一步细化,为降低软件产品的构造难度,进而控制软件产品构造的复杂度。 w e d i j k s t r a 提出了一种结构化程序方法用以指导程序设计;d k n u t h 提出把算法与数据 结构作为独立实体从使用它们的程序中分离出来;n w u t h 提出了自顶向下,逐步细化 的程序设计方法;d p a m a s 提出了信息隐藏的相关原理;e y o u r d o n 等人提出了s a & s d 方法【l 捌。以上思想方法极大的促进了软件事业的开发。 随着信息化技术的进一步发展,软件产品的企业级应用变得越来越广泛,企业的需 求及对软件系统的要求也变得越来越高,目前软件产业中普遍存在以下现象: ( 1 ) 同一领域的软件在功能上有很大程度的相似。即使在不同的领域中运行的软 件系统在功能上也有一定的重叠。 ( 2 )目前软件行业中重复或部分重复构造同一功能系统的问题尤为严重。 因此,如何提高软件的复用性,减少软件开发中的重复劳动对软件的顺利开发及后 期维护显得尤其重要。面向对象技术的普遍应用使软件的可复用性有了很大的提高【3 1 。 然而,随着软件产品规模的不端扩大,软件产品复杂性的不断增加,人们对软件可 复用性的要求不断提高。在软件设计过程中,开发者不仅要满足软件的功能性需求,还 要满足系统可适应性、可靠性、可移植性、可维护性等诸多非功能性需求。传统的软件 开发方法多把注意力集中在软件的功能性需求而忽视了软件的非功能性需求。而设计模 式的应用有效的解决此类软件复用问题。设计模式通常是对于某一类软件设计问题的可 重用的解决方案。面向对象设计模式描述了面向对象设计过程中、特定场景下、类与相 基于设计模式的物资管理系统的研究与实现 互通信的对象之间常见的组织关系【4 ,5 】。设计模式是软件开发的革命性成果,是很多软件 设计人员成功设计经验的结晶,是复杂问题的简单解决方法,它使系统开发者可以更加 简单方便地复用成功的设计结果,将己证实的技术表述成设计模式也会使新系统开发者 更加容易理解其设计思路【6 - 8 】。1 9 9 5 年著名的设计模式四人组( g o f ) 提出了2 3 种通用 的设计模式,其后设计模式得到了广泛的研究和应用 9 , 1 0 】。在软件开发中合理的应用设 计模式,可以以过去成功的经验指导新的软件产品的开发,大大的缩短软件产品的开发 周期,提高软件产品的质量和复用性。 1 3 国内外研究现状 虽然设计模式的概念提出至今已有几十年的历史,但相对来说,设计模式在计算机 领域的应用仍然是一个比较新的范畴。自从g o f 的软件设计模式问世以来,设计 模式在计算机领域的受关注程度逐渐加深。在国外,软件工程界已把设计模式应用于软 件体系结构的设计、软件的组织及编码实现等系列的软件开发过程中。较之国外相比, 国内的设计模式理论的研究与应用虽然相对滞后,但近几年来也有了长足的发展。 目前,国内外对于设计模式的研究一般集中在以下几个方面: ( 1 ) 模式的提出与改进。目前,国际上每年都举行多种学术会议对设计模式进行 讨论。也不断有新的模式被提出。文献【1 13 在算法演示领域提出了两个新的设计模式。 文献【1 2 提出了一种改进的m v c 模式。文献 1 3 】提出了一种面向方面编程中新的设计模 式。 ( 2 ) 设计模式的再现。这是设计模式的一个较新的研究方向。与传统的研究方向 相比,设计模式的再现主要研究的是从成熟的软件产品中提取出应用在其中的设计模 式。目前,相关研究成果主要发表在国外的期刊和会议中,如文献1 1 4 3 提出了一种自动 检测设计模式的方法,文献 1 5 提出了一种基于j a v a 注释功能的方法来提取应用在程序 中的设计模式。文献 1 6 3 提出了一种多层模型d e m i m a ,用于提取源程序中的设计模式。 文献 1 7 】给出了一种模板匹配的方法提取设计模式。 ( 3 ) 设计模式的应用。任何的理论的提出与研究最终都要服务于具体的实现,设 计模式的研究领域也不例外,目前在软件业的各个领域都有设计模式的广泛的应用。文 献 1 8 】、 1 9 】分别介绍了设计模式在u i ( u s e ri n t e r f a c e s ) 中的应用。文献 2 0 】介绍了设 计模式在实时分布式领域的应用。总的来说设计模式的思想已经深入到计算机技术的各 个领域中,并对相关领域的技术发展与革新起到了极大的促进作用。 1 4 本文的组织结构 本文将设计模式思想与面向对象的程序设计方法相结合,在n e tf r a m e w o r k2 0 提 人连理丁大学硕士学位论文 供的相应机制的基础上,主要研究了设计模式在面向对象软件开发中的应用,各章组织 结构如下: 第一章主要介绍了课题的研究背景及意义,同时介绍了设计模式在国内外的研究现 状。 第二章系统的阐述了设计模式的发展背景及相关概念,并对设计模式思想在面向对 象技术中应用的必要性及可行性进行了总结。 第三章给出了中国银行辽宁省分行物资管理系统的需求建模过程,详细的分析了设 计模式思想在系统中的应用背景,同时给出了系统的开发架构及平台的选择。 第四章给出了系统三层体系结构,并详细论述了设计模式思想在系统各架构层次中 的应用,包括在数据库访问层中应用了抽象工厂模式、简单工厂模式,在业务逻辑层中 应用了单例模式、策略模式、观察者模式、桥模式,在表示层中根据n e tf r a m e w o r k2 0 提供的新机制实现了m v c 模式。同时,对于相关模式的应用,给出了系统的界面截图, 直观的展示了本文的研究工作。 最后,在总结本文研究工作的基础上,给出了下一阶段研究工作的重点与展望。 基丁设计模式的物资管理系统的研究与实现 2 设计模式的基础理论 设计模式是一个广义的概念,并不局限于某一领域或范畴。在面向对象的软件设计 中,设计模式的应用同样不受编程语言的限制。鉴于本文涉及的学术领域与研究背景, 本文所讨论的设计模式仅限于面向对象的软件设计领域。 2 1 设计模式的发展背景 上个世纪6 0 年代爆发了著名的“软件危机 ,这场危机暴露出了传统的软件开发 方法的种种不足。在这种背景下,面向对象的软件开发方法应运而生,并在随后的2 0 年罩得到了广泛的应用。到了上个世纪9 0 年代,面向对象的软件开发方法已成为很多 软件产品及信息系统开发的首选技术【2 1 。2 3 1 。然而,面向对象的软件开发方法仍然存在着 一定的不足,如对软件的复用性及扩展性支持不足、难以控制软件的开发进度、软件的 后期维护成本居高不下等问题仍然困扰着开发人员,在这种背景下,设计模式思想的引 入在一定程度上弥补了这些不足。在面向对象的软件开发中合理的应用设计模式,可以 简化软件成品的设计和实现过程,使软件系统的基础构架更加清晰,为软件工程的应用 和软件开发提供良好的途径。因此,目前在诸多大型软件系统的设计过程中,设计模式 都已成为重要的辅助手段【2 4 2 5 1 。 2 2 设计模式的相关概念 关于模式的定义最早出现在建筑大师c h r i s t o p h e r a l e x a n d e r 的著作中,他指出:每 一个模式描述了一个在我们周围不断重复发生的问题,以及处理该问题的解决方案的核 心。这样,你就能一次又一次地使用该方案而不必做重复的劳动 2 6 捌。 e r i c hg a m m a 于1 9 9 1 年完成的博士论文中第一次介绍了在软件开发中如何引入设 计模式。在1 9 9 5 年,著名的设计模式四人组( 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 ) 在( ( 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 eo b j e c t o r i e n t e ds o f t w a r e ) ) 一书中详细归纳并阐述了面向对象的开发方法中所涉及到的设计模式【2 引。 2 2 1 设计模式的概念 设计模式的概念有很多种,以下给出几种常用概念的简要归纳【2 9 】: ( 1 ) 一个模式就是一个三元组,它包括特定的上下文、针对的问题及相应的解决 方案。 ( 2 ) 设计模式用来指定一套规则用以描述如何在软件开发领域完成特定的任务。 ( 3 ) 设计模式描述了在特定环境下重复出现的问题及其解决方案。 大连理工大学硕十学位论文 ( 4 ) 设计模式是对被用来在特定场景下解决一般设计问题的类及相互间通信的对 象的描述。 ( 5 ) 设计模式就是用于细化软件系统及其子系统、组件,或它们彼此间关系的图 式。 2 2 2 设计模式的要素 文献 6 给出了设计模式的四个基本要素: ( 1 ) 模式的名称 模式的名称是一个助记名,要求用尽量精炼的词语描述模式所能解决的问题、具体 的解决方案及期望达到的解决效果。模式名可以帮助开发人员针对特定的问题交流设计 思想。对某一模式找到恰当的名称是模式编目工作的重点之一。 ( 2 ) 模式针对的问题 模式针对的问题描述了模式的使用场景,具体解释了某一特定模式适合于在何种条 件下使用。这种场景包括了问题的特征及其存在的因果关系,有时,也包含模式使用的 相应前提。 ( 3 ) 解决方案 解决方案描述了设计的组成部分、各部分之间的相互关系和各自的职责及协作方 式。它为相应问题的解决提供了抽象的描述。 ( 4 )效果 模式的效果描述了使用模式应权衡的问题及具体应用所能带来的效果。这里的效果 包括对系统扩展性、复用性、可维护性等相关特性的影响。 2 2 3 设计模式的原则 文献 3 0 】给出了设计模式在面向对象的程序设计中应遵循的原则: ( 1 ) 封装变化的概念 这里指的封装变化主要体现在以下两个方面: 任何系统的开发都建立在需求分析的基础上,而需求的变动在现实开发中经常 发生,因此,系统应该具有一定程度的灵活性以应对需求的改变。 把系统内部复杂的实现过程封装起来,在保证系统灵活性的同时为外界提供友 好稳定的访问接口。 简而言之,封装变化的概念就是将系统的灵活性与易用性统一起来。将具体的封装 过程留给系统开发人员,而为用户提供友好稳定的接口。从而分别从内部实现和外部调 用两个角度提高系统的可复用性【1 6 】。 基于设计模式的物资管理系统的研究与实现 ( 2 ) 设计模式中的子模式 不同的设计模式在结构上存在着一定的共性,这点可以从具体设计模式中类的结构 图中观察出。不同的设计模式在结构上一般具有如下共性: 引用抽象 引用抽象指在系统运行时,利用面向对象编程中的多态技术,根据需要动态的传入 或生成一个具体的对象实例,这个实例生成自某个抽象类的派生类或某个接口的具体实 现类。 引用父类 引用父类的原则指出,由抽象的父类提供同一接口,这里的抽象可能是抽象类,也 可能是接口,在系统运行时,通过对父类的引用,具体的实现类可以动态的生成相应的 树形结构。由于树中各节点均继承自统一的抽象父类,所以树中每个节点都具有相同的 对外接口,利用这种方法,可以统一对树中节点的处理方法,极大的提高系统的灵活性 和扩展性。 引用自身 引用自身原则的是指在程序运行时,动态的生成本类对象的一个对象链,当某一特 定的请求发生时,系统可以动态的在对象链中寻找合适的对象来处理这个请求。 模板方法 模板方法是一个原则,也是一种设计模式。这种模式常与其他模式联合使用,这种 联合的使用应参照具体的场景。其宗旨是提高程序的性能,而不是为引入设计模式而强 行应用。 以上介绍了设计模式在面向对象的程序设计中应遵循的原则,接下来将介绍一个好 的设计模式应该遵循哪些原则【2 2 】: ( 1 ) 去耦合 在紧耦合的系统中替换其中某个具体的类是一件相当困难的事情,而且,以紧耦合 的方式实现的系统其类也很难被其他系统所复用。这在增加系统的开发与维护难度的同 时也极大的降低了系统的可复用性,增加了系统的开发成本。设计模式的一个核心的原 则就是对紧耦合的系统进行去耦合,进而形成一个松耦合的系统。从而使系统变得可复 用、易修改、易维护、可扩展。在具体的设计理念中,通常采用分层技术,或在抽象层 进行抽象耦合的方法来达到对系统去耦合的目的。 ( 2 ) 抽象出接口 封装变化的概念这一原则要求在具体开发过程中,首先要抽象出合理的接口,这里 的接口也包括抽象类,然和根据具体情况编写不同的类来实现相应的接口。只要具体的 一6 一 大连理工人学硕士学位论文 实现类忠实的实现了接口的标准,就可以在系统运行时根据需要动态的调用具体的实现 类以完成相应的处理功能。 ( 3 ) 增加中间对象 在系统设计中增加中间对象往往出于以下两点考虑: 系统中对象间存在着紧密的联系,需要通过增加中间对象的方式来实现各对象 问的松耦合。 希望使系统中实现不同接口的对象具有统一的接口,使不同的对象可以在应用 时灵活的相互替换。 通过增加中间对象的方式,可以有效提高系统的复用性,这种复用即包括系统中对 象级别的复用,也包括系统本身的复用。 ( 4 ) 条件分支对象化 条件分支语句是程序设计中常见的实现逻辑判断的形式。利用条件分支语句可以使 系统对可能出现的不同情况做出相应的处理。然而,在系统设计中过于依赖条件分支语 句处理可能发生的情况却并不是一种好的设计方法。因为,对于系统开发和维护人员来 说,阅读冗长的条件分支语句并记忆分析可能出现的情况是一件困难的工作,尤其是当 系统要处理的情况过多时,对新增情况的处理往往要在理解现有所有条件分支语句的基 础上进行,这无疑极大的增加了系统的开发与维护的开销,在开发过程中引入设计模式 的一个重要的原则就是去分支,简而言之,就是将各种需要进行逻辑判断的情况抽象成 相应的接口或抽象类,在运行时通过调用相应的具体处理类来达到与条件分支语句同样 的处理效果,从而将系统中复杂的逻辑判断对象化,进而提高系统的可维护性及扩展性。 ( 5 ) 抽象骨架 抽象骨架的思想就是对系统所要实现的具体功能进行抽象,将对问题的具体处理方 法分解到不同的相关操作中,然后按照特定的顺序调用这一系列相关的操作以实现系统 预期的特定功能,抽象骨架的方法可以使类的功能单一化,使对具体类的修改及替换变 得灵活易实现。 ( 6 ) 支持变化 对于一个实际系统,需求的变化往往是不可避免的,而需求的变化必然会要求系统 做出相应的处理。在系统中对需求容易出现变化的部分进行抽象,通过具体的实现类处 理系统不同的变化分支。当需求出现新的变化时,就可以通过修改或增加具体的变化处 理类来使系统适应需求新的变化。 2 2 4 设计模式的分类 基丁设计模式的物资管理系统的研究与实现 对设计模式的划分可以依据两条不同的准则,分别是目的准则和范围准则。目的准 则指设计模式用来完成什么样的工作,范围准则指设计模式主要是应用于类还是应用于 对象。以下分别给出了常用设计模式的简要分类: ( 1 ) 以目的准则划分 创建型模式 包括工厂模式、抽象工厂模式、建造者模式、原型模式及单例模式。 结构型模式 包括适配器模式、桥模式、组合模式、装饰模式、外观模式、享元模式及代理模式。 行为型模式 包括解释器模式、职责链模式、命令模式、迭代器模式、中介者模式、备忘录模式、 观察者模式、状态模式、策略模式及访问者模式。 ( 2 ) 以范围准则划分 类级模式 包括工厂模式、适配器模式( 类级) 及解释器模式。 对象级模式 包括抽象工厂模式、适配器模式( 对象级) 、建造者模式、原型模式、单例模式、 桥模式、组合模式、装饰模式、外观模式、享元模式、代理模式、职责链模式、命令模 式、迭代器模式、中介者模式、备忘录模式、观察者模式、状态模式、策略模式及访问 者模式。 2 2 5 设计模式的描述形式 模式团体的非官方组织h i l l s i d e 向人们推荐了三种设计模式的描述形式【2 2 1 ,分别是 d o u gl e a 的h t m l 模板式形式、g o f 的模版式形式和a g 的h t m l 模版式形式。本文主要 讨论g o f 的模版式模式描述形式: ( 1 ) 模式的名称 模式名称反映了模式的本质,包括模式能够处理的问题及实现的效果。一个准确恰 当的模式名称对于正确理解模式的应用范畴显得尤为重要。 ( 2 ) 模式的别名 相对于模式的名称而言,模式的别名可以因不同的应用领域或方向而具有不同的名 字,它的作用是帮助使用者更好的理解模式适用的范畴及作用。 ( 3 ) 模式的意图 模式的意图主要回答模式的适用场景,它包括模式可以做什么,模式的基本原理、 一8 一 大连理上人学硕十学位论文 意图以及可以处理什么样的特定问题。 ( 4 ) 模式的动机 模式的动机用于说明在模式的实现中如何使用相关的类、对象来解决某个特定场景 中的具体问题。 ( 5 ) 模式的适用性 模式的适用性描述了模式的应用情况,包括何时适合使用何种模式,特定模式的应 用可以解决哪些问题,以及该模式的应用改进了哪些不良的设计等。 ( 6 ) 模式的结构 模式的结构即模式的具体组成形式。u m l ( 统一建模语言) 是软件建模事实上的通 用标准【3 l 】,因此,常采用u m l 中的类图来表示模式的结构,包括模式中类与类、类与 对象、对象与对象间的结构关系。 ( 7 ) 模式的参与者 模式的参与者描述了模式中不同的组成部分所扮演的不同角色,所谓的不同的组成 包括不同的类、接口和对象。 ( 8 ) 模式的协作 模式的协作描述了模式的参与者间如何协同的工作以完成共同的职责。 ( 9 ) 模式的效果 模式的效果描述了模式的应用可以带来什么样的效果。为了达到这些预期的效果系 统应该在设计方面做哪些取舍及系统的结构应该做何种调整。 ( 1 0 ) 模式的实现 模式的实现描述了应用模式时应该注意避免哪些陷阱及需要预先掌握哪些相关的 技术前提,同时要注意在某一特定的语言环境中,是否存在依赖于它的特定的模式。 ( 1 1 ) 模式的代码实例 模式的代码实例指根据模式动机中提出的问题,给出模式的具体代码实现。 ( 1 2 )已知的应用例子 已知的应用例子指己成功应用某个模式的具体实例。 ( 1 3 ) 相关模式 相关模式用于描述某一模式可以与哪些模式相互搭配使用、相互搭配使用的模式间 的异同点及搭配使用时需要注意到的问题。 通过对设计模式不同描述形式的理解,可以使开发人员在实际项目中更好的分析、 理解、比较、应用相应的设计模式,以解决具体开发中的实际问题。 2 3 设计模式与面向对象的软件开发 基于设计模式的物资管理系统的研究与实现 2 3 1面向对象的规范与原则 面向对象的软件开发方法自提出以来,已在软件开发领域得到广泛的应用,众多开 发人员在实际运用中总结了很多的开发经验与准则3 2 1 。使得面向对象技术的发展日趋完 善。文献 9 】中较为详细的总结了面向对象范式的如下原则: ( 1 ) 对象是负有定义良好的责任的东西,并对自己负责。 ( 2 ) 封装并不仅是狭义上的实现数据的隐藏,而是包含以下三个具体方面: 数据的隐藏 类中数据只对类本身开放,外界只能通过类所提供的相应接口才能访问类内封装的 数据。 类的隐藏 类的隐藏指具体的实现类通过对抽象类或接口的继承来实现自身的隐藏。 实现的隐藏 实现的隐藏意味着将变化封装为对象,根据具体情况进行引用。 ( 3 ) 发现并封装变化点 使用共同点变化点分析抽象出行为和数据中的变化点。 ( 4 ) 针对接口进行设计。 ( 5 ) 把继承考虑为一种封装变化的方法,而不是为现有的对象制造特殊情况。 ( 6 ) 将变化点封装在一个类中,并使之与其他变化点相分离。 ( 7 ) 力求高内聚、低耦合。 ( 8 ) 忠实的履行“一次并且只有一次”规则,即只在一个地方实现一条规则。 ( 9 ) 优先考虑使用对象间的组合而不是类间的继承。 文献 3 3 中较为详细的给出了面向对象的设计原则,分别包括类的设计原则与包的 设计原则【3 4 0 6 】: ( 1 ) 类的设计原则 单一职责原则 单一职责原则指就一个类而言,引起其状态发生变化的原因只应该有一个,类的状 态的变化直接源于其接口调用事件的发生,这里的接口指类提供给外界调用的方法。从 实现的角度来看一个类可以提供任意多个接口并且让它们支持任意所能实现的功能,而 不必在乎这些功能在实现上是否围绕着同一个的核心。单一职责原则的目的是对类提供 的接口进行限制,使类提供的接口围绕着一个共同的目的,进而使引起类的状态发生变 化的原因变得单一。因此,单一职责原则是实现类具有高内聚性的一个有力保证。 开放封闭原则 大连理t 大学硕+ 学位论文 开放一封闭原则是指对类的扩展是允许的,但对其修改是禁止的。项目的实际开发 中,需求的变化必然会带来系统设计与实现的改变,有时对已有系统的修改也在所难免, 但对于系统开发者来说,在满足需求变化的同时,对系统中的类应该避免修改其已实现 的稳定的功能,而采用派生子类等方式实现系统功能的扩充。 l i s k o v 替换原则 l i s k o v 替换原则由b a r b a r al i s k o v 于1 9 8 8 年首次提出,其实质就是在面向对象的程 序设计中,子类必须能够在实现上完全替代它们所继承的父类。该原则实现的基础是面 向对象技术所提供的继承、多态等特性,通过构建良好的类的层次结构和清晰的接口可 以很好的实现这一原则。 依赖倒置原则 细节与抽象应该是依赖与被依赖的关系,而反之则不然。与传统的软件开发方法中 的依赖关系不同,面向对象的软件开发方法所提倡的依赖倒置原则强调高层模块不再依 赖于底层模块,而是二者均应依赖于具体的抽象。这里的抽象包括接口,也包括抽象类。 高层根据需要为某一服务声明相应的抽象,并通过该抽象间接的调用底层,这就实现了 二者对抽象的依赖。 接口隔离原则 接口隔离原则强调使用多个专门的接口比使用单一的接口要好。相关类间彼此的依 赖应该建立在最小的接口基础上。一个接口应该只代表一个角色,将不同角色都交给一 个接口,使没有关系的接口合并在一起,会形成一个臃肿的大接口,这是对角色和接口 的污染。 ( 2 ) 包的内聚性原则 重用发布等价原则 重用粒度就是发布粒度,一个包的重用粒度和发布粒度一样大。可以被重用的任何 东西都必须同时能够被发布且跟踪。如果一个包中的软件是用来重用的,那么它就不能 再包含与重用无关的相关设计。一个包的内部组成,要么都是可重用的,要么都不可以 重用。 共同封闭原则 共同封闭原则指出,在设计包时,相互之间紧密关联的类应该放在同一包里,包中 的所有类对于同一类性质的变化实现共同的封闭。 共同重用原则 共同重用原则指出一个包中的所有类应该是密不可分的,包中的所有类应该具有共 同重用性,即重用了包中的一个类,就要重用包中所有的类。 基于设计模式的物资管理系统的研究与实现 ( 3 ) 包的耦合性原则 无环依赖原则 无环依赖原则指在包的依赖关系图中不应该存在环。这是为了降低包与包间耦合性 的需要。 稳定依赖原则 稳定依赖原则指出包问的依赖性应该朝着稳定的方向发展。即一个包应该依赖于比 其自身更加稳定的包。因为如果被依赖的包并不稳定,那么当这个不稳定的包发生变化 时,依赖于它的本身稳定的包的状态也必然会发生改变。 稳定抽象原则 稳定抽象原则指包的抽象程度应该同其稳定程度一致,即稳定的包应该是抽象的, 它应该只包含抽象类,系统可以通过在其他包中实现该稳定包的抽象类来扩展其功能, 这样可以使系统在不失稳定性的同时保持良好的灵活性。 2 3 2 设计模式与面向对象思想的结合 将设计模式思想与面向对象的技术相结合具有如下意义: ( 1 ) 必要性 面向对象的程序设计方法虽然已经得到了广泛的运用,但在实际应用中仍然存在着 一定的不足,需要引入新的思想加以完善。 ( 2 ) 可行性 应用于面向对象的程序设计中的设计模式经过了相关专家的总结,并在众多开发实 例中印证了其应用的可行性及有效性。 ( 3 ) 高复用性 在面向对象的程序设计中引入设计模式思想,可以使系统的相关模块对外提供稳定 的接口,这种稳定的接口可以在系统中被广泛的复用。从而使系统整体的复用性大大提 高。 ( 4 ) 易于扩展 由于设计模式思想的运用,使面向对象的程序设计中对开放封闭原则的遵守变得 更加易于实现,为系统功能的扩展提供了更加有力的支持。 ( 5 ) 易于维护 系统的后期维护工作是系统开发中重要的一环。在面向对象的程序设计中引入设计 模式思想,可以使系统各功能模块具有高内聚,低耦合的特性,这就使得在具体的维护 工作中,可以将问题定位在一个相对封闭的范围内,且对系统中某一功能模块的升级不 人连理工大学硕士学位论文 会对与其相关联模块造成级联修改的问题。 ( 6 ) 高开发效率 在面向对象的程序设计中应用设计模式思想,在提高系统的复用性、扩展性的同时 必然会带来系统开发速度的提高,这就缩短了软件的开发时间,一定程度上缓解了系统 开发速度不能满足用户需求的矛盾,提高了软件产品的生产效率。 基于设计模式的物资管理系统的研究与实现 3 系统的建模与分析 3 1系统的开发背景 随着中国银行辽宁省分行各项事业的迅速发展,为使省行及其下属支行的物资保障 工作适应新形势下的工作要求,需要开发一套物资管理系统,通过搭建后勤物资保障信 息平台,使物资申领、采购、分配工作得到整合,以增大物资管理的透明度,加强职能 部门掌控物资设备的配置信息,科学的配置设备资源,减少资金占用,节省费用支出, 降低物资采购成本,简化工作程序,提高工作效率。 3 2 系统的需求建模 需求分析在软件开发中具有极其重要的作用3 7 1 。软件需求例是指用户对目标软件系 统在功能、行为、性能、设计约束等方面的期望。通过对具体问题及其应用环境的理解 与分析,为问题所涉及到的相关信息、功能及系统的行为建立相应的模型,将用户的需 求具体化、完全化。这一系列相关的活动便构成了软件开发生命周期中的需求分析阶段。 软件建模是在系统需求分析完成的基础上进行的。从项目的具体开发角度来看,采用面 向对象的软件开发技术在建模阶段主要包括静态建模和动态建模两种建模机制。静态建 模是对系统的静态描述,主要的建模形式包括u m l 的用例图、类图、对象图、组件图 和部署图。动态模型则是对系统的动态描述,主要的建模形式包括u m l 的状态图、顺 序图、活动图和协作图【3 9 ,4 0 】。以下将分别从动静两个角度对系统的需求进行建模分析。 系统的功能结构如图3 1 所示。 物资管理系统 管理功能子系统 基 本 信 息 管 理 额 度 管 理 业务功能子系统 物 资 由 领 管 理 图3 1 系统功能架构 f i g 3 1s y s t e mf u n c t i o n a la r c h i t e c t u r e 采 购 管 理 盘 点 管 理 大连理r 大学硕士学位论文 3 2 1 管理功能子系统 管理功能子系统分为基本信息管理、额度管理、信息管理、查询管理四个子模块。 其用例图如图3 2 所示。 管理功能子系统 o = = = = = = 、 o u ,e人 度管理者部门 o 嘭:。客 t 系统用7 息管理者 o 岫一一 、d 怠管理者 oo :二: 人 赢杏询者信赢杏- i f i l 图3 2 管理功能子系统用例图 f i g 3 2 u s ec a s ef o rm a n a g e m e n ts u b s y s t e m ( 1 ) 基本信息管理 基本信息管理为总务相关管理人员提供部门信息管理、用户信息管理、权限管理等 相关功能。 ( 2 ) 额度管理 额度管理为财务部相关管理人员提供额度信息管理。包括对部门额度参数的设置、 额度内金额和额度外消费金额的分配。 ( 3 ) 消息管理 基丁设计模式的物资管理系统的研究与实现 消息管理负责通知公告、规章制度的发布,并负责处理用户提交的上报维修信息。 ( 4 ) 查询管理 查询管理为用户提供对物品信息、人员信息、额度信息等一系列信息的查询功能。 3 2 2 业务功能子系统 业务功能子系统负责处理系统的核心业务,包括物资申领管理、库存管理、采购管 理和盘点管理等四个子功能。其用例图如图3 3 所示。 库 o 至 9 ! ! 竺鼍低值易耗申领y人 申领人 o ,一、v 、 o l 鼍佩 一。 人 每管理员 oo 人 采购员 彩购员 ,7 延 q 1 q :i一一一de、 人 - 、7 、- - , 弋财务盘点卜 彗占人善 七i ( 1 )申领管理 图3 3 业务功能子系统用例图 f i g 3 3 u s ec a s ef o rb u s i n e s ss u b s y s t e m 员 大连理工大学硕士学位论文 申领管理由省行部门物资申领和支行物资申领两部分组成。省行部门具有低值易耗 品申领、固定资产申领、电子设备等申领功能。各支行只具有低值易耗品申领功能。 省行部门低值易耗品申领 部门低值易耗品申领分为一般领用和特殊领用两种情况,对于部门低值易耗品的一 般领用,用户通过查询库存信息,选择需要的物品并填写数量,提交后申领信息汇总给 部门协管员。部门协管员根据本部门的申领情况及部门剩余额度选择生成额度内申领单 或额度外申领单。额度内申领单需要通过总务审核,总务审核通过后由部门协管员负责 领取物品,部门协管员领取物品时部门可用额度会相应减少。额度外申领单需要通过财 务部、总务部分别审核,部门协管员领

温馨提示

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

评论

0/150

提交评论