




已阅读5页,还剩76页未读, 继续免费阅读
(计算机应用技术专业论文)设计模式在旅游管理系统中的应用研究.pdf.pdf 免费下载
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
西南交通大学硕士研究生学位论文第1 页 摘要 设计模式描述了软件设计过程中某一类常见问题的一般性解决方案,将 设计模式引入软件设计和开发过程,其目的就在于要充分利用已有的软件开 发经验,它是成功的构架、设计及实施方案,是经验的总结。设计模式使人 们更加简单方便地复用成功的设计和体系结构,使得设计过程更加清晰高效。 设计模式的最终目标就是帮助人们利用成功软件设计师的集体经验,来设计 出更加优秀的软件。 旅游管理系统在设计开发期间,大量地借鉴了设计模式所提供的优秀的 方案来解决所遇到的实际问题。从旅游管理系统的业务特点出发,分析系统 功能与特点,指出旅游管理系统对设计模式的需求。文中所指的设计模式都 是指面向对象设计模式,且采用了大量的u 札图形描述各种设计模式。 本文首先介绍了设计模式的研究背景和意义,分析了当前国内旅游行业 的特点,提出了开发基于设计模式的旅游管理系统的必要性。 进一步对面向对象设计模式等相关技术进行了深入的研究,通过比较设 计模式与组件技术、框架技术、软件体系结构的关系,提出了基于设计模式 的软件开发的可行性。 接下来通过对具体企业的充分调研,分析和总结了当前旅行社日常办公 效率的不足,并提出了旅游管理系统的总体架构,对旅游管理系统进行了总 体设计,划分了其功能模块并给出了系统的业务流程,介绍了各个功能模块 的分析和详细设计,包括信息管理、产品定制管理、产品管理、团队运营管 理、人事管理、个人管理、权限管理。 最后,介绍了基于设计模式的旅游管理系统的具体实现以及运行情况。 阐述了设计模式在系统开发中的具体应用过程,通过分析该旅游管理系统, 给出了设计模式的具体应用方法和具体设计方案,尤其是工厂方法模式、策 略模式、单键模式、外观模式和模板方法模式。从实践的角度证明了软件开 发中运用设计模式的优势,同时指出了系统的不足和有待提高的地方。 关键词:设计模式;旅游管理系统;面向对象;n e t 西南交通大学硕士研究生学位论文第1 i 页 a b s t r a c t d e s i g np a u e m i sag e n e r a ls o l u t i o nt oas p e c i f i cp r o b l e me n c o u n t e r e dd u r i n g t h ep r o c e s so fs o f t w a r ed e s i g n t h ep u r p o s eo fu s i n gt h e s ed e s i g np a t t e m si n t o t h ep r o c e s so fs o f t w a r ed e s i g na n dd e v e l o p m e n ti st om a k eu s eo fs u c c e s s f u l e x p e r i e n c e ss u m m a r i z e db yf o r m e rd e v e l o p e r s t h e ya r es u c c e s s f u la r c h i t e c t u r e , d e s i g na n di m p l e m e n t a t i o ns t r a t e g i e s b yr e a l i z i n gt h e s ed e s i g np a 仕e r n s ,p e o p l e c a ni l a k eu s eo fs u c c e s s f u ld e s i g na n da r c h i t e c t u r ee a s i l ya n dt h ep r o c e s so f d e s i g nb e c o m e sf a i r l ym o r ec o n v e n i e n t t h em o s ti m p o r t a n tg o a lo f d e s i g n p a a e m i st oh e l pp e o p l et od e s i g nm o l ee x c e l l e n ts o f t w a r e d u r i n gt h ep r o c e s so fd e s i g na n dd e v e l o p m e n to ft h i s 订a v e lm a n a g e m e n t s y s t e m , n m n yd e s i g np a r e m sa r ei m p l e m e n t e dt os o l v ep r o b l e m s r e g a r d i n gt h e o p e r a t i o n a lc h a r a c t e r i s t i c so ft r a v e lm a n a g e m e n ts y s t e m , t h er e q u i r e m e n tf o r d e s i g np a 仕e mi sp u tf o r w a r d t h ed e s i g np a r e mr e f e r r e db yt h i sa r t i c l ei s o b j e c t - o r i e n t e dd e s i g np a t t e r n t h ep a p e ru s e s ag r e a td e a lu m lf i g u r e st o d e s c r i b em o s tp a a e m s s t r u c t u r e f i r s t l y ,t h eb a s i ct h e o r yo f d e s i g np a t t e r ni si n t r o d u c e d t h ec h a r a c t e r i s t i c so f t r a v e l i n d u s t r y a r ea n a l y z e d t h en e c e s s a r i l i t yo ft h ed e v e l o p m e n to ft r a v e l m a n a g e m e n ts y s t e mi sp u tf o r w a r d s e c o n d l y ,t h i sp a p e rg i v e si n - d e p t hi n f o r m a t i o na b o u ta p p l y i n gd e s i g n p a t t e r n b a s e do na n a l y z i n gr e l a t i o n s h i pa m o n gd e s i g np a t t e r na n dc o m p o n e n t t e c h n o l o g i e s ,i 苦a m e w o r ka n ds t r u c t u r e ,a na p p l i c a b i l i t yp r o p o s a li s b e i n g p r e s e n t e d t h e n ,t h r o u g ht h es u r v e yi ns o m ee n t e r p r i s e s ,t h ed i s a d v a n t a g e so fc u 珥e n t o f f i c eo ft r a v e la r ea n a l y z e da n ds u m m a r i z e d ,a n dt h i st r a v e lm a n a g e m e n ts y s t e m g e n e r a la r c h i t e c t u r ei sp u tf o r w a r d f u n c t i o nm o d u l e sa r ed i v i d e da n dt h eb u s i n e s s f l o wi sg i v e n ,t h ea n a l y s i sa n dd e t a i ld e s i g no f e a c hf u n c t i o nm o d u l ei si n t r o d u c e d , w h i c hi n c l u d e si n f o r m a t i o nm a n a g e m e n t , p r o d u c to r d e r m a n a g e m e n t , p r o d u c t m a n a g e m e n t , t e a mm a n a g e m e n t , h u m a nr e s o u r c 6m a n a g e m e n t , p e r s o n a l i n f o r m a t i o nm a n a g e m e n ta n dr i g h tm a n a g e m e n t a tl a s t ,t h i sp a p e re l a b o r a t e sc o n c r e t er e a l i z a t i o no ft h et r a v e lm a n a g e m e n t s y s t e md u r i n gt h ec o u r s eo fw h i c hm a n yd e s i g np a r e m sa r ei m p e n e t r a t e d 西南交通大学硕士研究生学位论文第1 i i 页 e s p e c i a l l yf a c t o r yp a t t e r n , s t r a t e g yp a t t e r n , s i n g l ep a t t e r n ,f a c a d ep a t t e r na n d t e m p l a t em e t h o d p a t t e m b ya n a l y z i n gt h es y s t e m , t h ec o n c r e t em e t h o da n d d e s i g ns o l u t i o n sa r cg i y c n t h ed i s a d v a n t a g ea n dp o s s i b l ei m p r o v e m e n to ft h e s y s t e ma r ep o i n t e do u t k e yw o r d s :d e s i g np a t t e m ;t r a v e lm a n a g e m e n ts y s t e m ;0 b j e c t - o r i t e n t e d , n e t 西南交通大学硕士研究生学位论文第1 页 1 1 引言 第1 章绪论 设计模式通常是对于某一类软件设计问题的可重用的解决方案。面向对 象设计模式描述了面向对象设计过程中、特定场景下、类与相互通信的对象 之间常见的组织关系“1 。设计模式是软件开发的革命性成果,是很多软件设 计人员成功设计经验的结晶,是复杂问题的简单解决方法,它使系统开发者 可以更加简单方便地复用成功的设计结果,将己证实的技术表述成设计模式 也会使新系统开发者更加容易理解其设计思路。1 。1 9 9 5 年g a n go ff o u r ( g o f ) 提出了2 3 种通用的设计模式,其后设计模式得到了广泛的研究和应用。本 章主要介绍了论文研究的背景及意义,论文的主要工作。 1 2 论文研究的背景及意义 软件复用是解决软件危机根本途径之一,面向对象技术的普遍应用使软 件的可复用性有了很大的提高【4 】。然而,随着软件的日益复杂和庞大,人们 对软件可复用性的要求越来越高,他们希望所使用的软件不仅能满足当前的 功能需求,而且还要有足够的灵活性以适应将来的变化。而设计模式为我们 提供了一条捷径,它帮助人们做出有利于系统复用的选择,帮助设计人员复 用已成功实现的系统的概念模型,以过去成功的开发经验指导当前的软件开 发,大大提高了软件开发的效率和质量。 模式的概念最早是由一位叫c h r i s t o p h e ra l e x a n d e r 的建筑师提出来的, 他着眼于研究建筑物的通用结构,试图找到一种结构化的、可复用的方法, 以便在图纸上捕捉到伟大的建筑物的基本要素。他说:“每一个模式描述了一 个在我们周围不断重复发生的问题,以及该问题的解决方案的核心。这样, 你就能一次又一次地使用该方案而不必做重复劳动”。随后,模式被引入软件 设计和开发过程,也就是设计模式州。 一般而言,一个模式有四个基本要素【6 j : 西南交通大学硕士研究生学位论文第2 页 模式名称:一个助记名,它用一两个词来描述模式的问题、解决方案和 效果。 问题:描述了应该在何时使用模式。 解决方案:描述了如何解决问题。解决方案并不描述一个特定而具体的 实现,而是提供问题的抽象描述和怎样用一个具有一般意义的元素组合来解 决这个问题。 效果:描述了模式应用的效果及使用模式应权衡的问题。模式的效果包 括它对系统的灵活性、扩充性或可移植性的影响。 同时,模式被分成三种类型 7 】: 体系结构模式:表示软件系统的基本结构化组织图式。它提供套预定 义的子系统,规定它们的职责,并包含于组织它们之间关系的规则和指南。 设计模式:提供了一个用于细化软件系统的子系统或组件或它们之间关 系的图式。与设计模式相关的,还有一种模式称为反模式,设计模式经常会 转变为反模式,其区别仅在于问题所处的环境。反模式是在不合适的环境下 应用了设计模式,它侧重于提醒人们如何避开错误的设计思维和软件编写。 惯用法( i d i o m ) :具体针对一种编程语言的底层模式,惯用法描述如何使 用给定语言的特征来实现组件的特殊方面或它们之间的关系。 设计模式的思想是描述一个不断重复出现的问题以及对该问题的核心解 决方案,它是成功的构架、设计及实施方案,也是经验的总结。模式是经过 时间和应用领域考验过的对一些问题的解决方案,这些问题已经被经验丰富 的设计师、开发者和语言专家所解决。对任何一个正在进行软件设计的人员 来说,善于利用已有的知识和专家经验是明智的。而采用一个已被反复证明 是成功的解决方案往往是个好主意。 在软件开发过程中,设计模式可以解决应用开发中的许多闯题。设计模 式使人们更加简单方便地复用成功的设计和体系结构,使得设计过程更加清 晰高效。将已证实的技术表述成设计模式也会使新系统开发者更加容易理解 其设计思路。设计模式帮助开发者做出有利于系统复用的选择,避免重复设 计损害了系统复用性。简而言之,设计模式可以帮助设计者更快更好地完成 系统设计。 西南交通大学硕士研究生学位论文第3 页 1 3 课题的来源及研究意义 本人参与了面向四川省中小旅行社的旅游管理信息系统的开发。该项目 主要是为了解决旅行社中存在的文档数据量极大、信息流通不畅、效率低下、 操作不规范等系列问题,采用信息化手段和新一代的管理思想,把协同办 公的理念、知识管理的思想带入了平时的办公生活。帮助工作单位来实现信 息化程度的全面提升。在项目的早期开发及后期部署过程中,出于对复杂性 的考虑,多次应用设计模式来解决一些特定的设计问题,从丽使软件中面向 对象的设计更加灵活,同时提升了代码的可复用性和扩展性。 本课题研究的意义在于将设计模式成功地应用于系统的设计及实现中, 保证了系统的灵活高效,提高了系统的整体性能,方便用户使用和臼后的升 级维护。 1 4 本论文研究的主要内容 论文所阐述的n e t 核心设计模式来源于无数专家对n e t 平台和技术的 亲身实践。引用设计模式以确保系统设计的高效性、可维护性和扩展性是非 常必要的嘲。在这个方向探索过程中,论文完成了如下几项工作: 1 ) 综合分析了当今旅游行业的现状,结合实际企业管理需求,参与设计 了一个实际的旅游管理信息系统。 2 ) 详细研究了面向对象设计原则和几种最常用的设计模式,分析了 在n e t 环境中程序的架构、设计和开发,探索了以面向对象为基础的程序框 架设计。 3 ) 通过面向对象的方法把系统分割成一系列的层次和对象,并使用设计 模式解决应用设计开发中存在的许多问题,实现多层系统结构,从真正意义 上实现了表示层与业务逻辑的分离,使得基于此架构的系统有利于不断扩充、 维护。 4 ) 以旅游管理信息系统的设计和实现过程为背景,严格按照软件工程的 流程进行分析设计和实现,详细地阐述了如何将设计模式思想应用于具体的 系统设计。 5 ) 在以上的理论指导下,实现了一个针对旅游行业的解决方案“旅游管 西南交通大学硕士研究生学位论文第4 页 - _ - - _ _ _ _ _ - _ _ _ _ - _ _ _ _ _ _ _ _ _ _ - _ _ _ - _ - _ _ _ _ _ _ _ _ _ _ - _ _ _ _ - _ _ _ _ _ 。 理系统”。本人在项目开发中主要承担项目的架构设计,数据库设计和大部分 的编码工作。 1 5 本章小结 本章主要介绍了设计模式的概念、研究背景及意义,分析了当前国内旅 游行业的特点,提出了设计模式在现代软件开发中应用的必要性,最后阐述 了论文要进行的主要工作。 西南交通大学硕士研究生学位论文第5 页 第2 章设计模式相关理论研究 2 1 设计模式相关理论 1 设计模式的概念唧 人们在自己的环境中不断的发现问题和寻找问题的解决方案的时候,发 现有一些问题及其解决方案不断的以不同的表现形式重复出现,在这些不同 形式的后面却有着共同的本质,这些共同的本质就是模式。模式所描述的问 题及问题的答案都是有代表性的。代表性是指它以不同的形式重复出现,允 许使用者举一反三,将它应用到不同的环境中去。 设计模式是模式在软件开发设计领域中的应用,它通常是面向对象的, 包括体系结构( 系统设计) 、设计( 组件交互) 和编程( 特定的语言技术) 。它描 述如何在特定情境中解决一般问题。 设计模式主要用于得到简洁灵活的系统设计。e r i c hg a m m a 等人将设计 模式按其解决问题的不同分为三种:创建型、结构型和行为型。通常情况下, 设计模式均基于面向对象技术而提出,也可应用于接口定义良好的结构化方 法中。 i ) 创建型模式 该类型模式是对象实例化过程的抽象,它通过采用抽象类所定义的接 口,封装了系统中对象如何创建、组合等信息。创建型模式可以帮助一个系 统独立于如何创建,谁创建,创建什么。它可以改变以前通过n e wc l a s s ( ) 这种硬编码方式转移为一个独立的行为集。因此这些行为可以实现复用和组 合,使用创建对象的过程易于修改、维护和扩展。 2 ) 结构型模式 该类模式主要用于如何组合已有的类和对象以获得更大的结构,一般借 鉴封装、代理、( 多) 继承等概念将一个或多个类或对象进行组合、封装,以 提供统一的外部视图或新的功能。结构型模式涉及到如何组合类和对象以获 得更大的结构。结构型模式采用继承机制来组合接口或实现。 3 ) 行为模式 该类模式主要用于对象之间职责及其提供的服务的分配,它不仅描述对 象或类的模式,还描述它们之间的通信模式,特别是描述一组对等的对象怎 西南交通大学硕士研究生学位论文第6 页 样相互协作以完成其中任意一个对象都无法单独完成的任务。这些模式刻画 了在运行时难以跟踪的复杂的控制流。它们将我们的注意力从控制流转移到 对象间的联系方式上来。 2 面向对象设计的基本原则【l o 】 一个好的软件设计应该具有可扩展性、灵活性以及可插入性。对于面向 对象的软件设计来说,在支持可维护性的同时,提高系统的可复用性是软件 设计中需要考虑的一个重要方面。软件的复用率高可以产生较高的生产效率, 提高软件质量,而且适当的使用复用可以改善系统的可维护性【9 l 。 通过学习和应用设计模式,可以更加深入的理解面向对象的设计理念, 帮助设计人员改善系统设计,提高软件系统的可维护性和可复用性。但设计 模式不能提供具有普遍性的设计指导原则。设计模式的背后有更为深层的、 更具有普遍性的、共同的思想原则,这就是面向对象设计的基本原则。本文 总结和分析了以下几种设计原则:开闭原则、里氏代换原则、依赖倒置原则、 接口隔离原则、组合,聚合复用原则、迪米特法则 1 0 】。 1 ) 开闭原则 “开闭原则”是面向对象设计最基本的原则。所谓“开闭原则”就是一 个软件实体应当对扩展开放,对修改关闭,也就是说软件设计的时候,在不 修改的情况下就可以扩展。 2 ) 里氏代换原则 子类应当可以替换父类并出现在父类能够出现的任何地方。里氏代换原 则是对开闭原则的补充,是保证开闭原则的重要原则。 3 ) 依赖倒转原则 依赖倒转原则就是抽象不应该依赖于细节,而细节应该依赖于抽象。依 赖倒转原则是面向对象设计的主要机制,它的核心思想就是要针对接口编程, 而不要针对实现编程。 4 ) 接口隔离原则 接口隔离原则就是不应该强迫客户依赖于它们不使用的方法。使用多个 专门的接口比使用单一的总接口要好。从客户类的角度讲,一个类对另外一 个类的依赖性应该是建立在最小的接口上。 5 ) 单一职责原则 单一职责原则就一个类而言,应该仅有一个引起它变化的原因。也就是 一个类的功能要单一,只做与它相关的事情。在单一职责原则中,我们把职 西南交通大学硕士研究生学位论文第7 页 责定义为“变化的原因”。 遵守单一职责原则有助于我们分析和编码的思路的清晰,也使编码、测 试和维护变得更加简单。将一个个复杂的问题分隔开来简单化以后,也有利 于代码的重用,有利于系统的扩展。 6 ) 合成聚合复用原则 合成和聚合都是关联的特殊种类。聚合用来表示拥有关系或者整体与部分 的关系,而合成是一种更强的拥有关系。使用合成或聚合,可以使用已有的 对象组成新的对象,新对象可以调用已有对象的功能。 7 ) 迪米特法则 迪米特法则也称之为最少知识原则,即一个对象应当对其他对象有尽可 能少的了解。也就是说在系统中各个对象之间应尽量减少直接调用,如果一 定要发生调用关系,应尽量通过第二方进行通信,这样可以有效地降低系统 中对象之间的耦合程度,这样就不会出现修改某一个类却对其它类产生不良 的影响。例如外观模式就是为了把各个层之间解耦,符合该原则。 3 通用责任分配原则( g r a s p ) 【l u 通用责任分配软件模式g r a s p ( g e n e r a lr e s p o n s i b i l i t ya s s i g n m e n t s o f t w a r ep a t t e r n s ) 是面向对象系统分析和设计的理论基础,指导我们做好对象 责任分配。责任是类间的一种合约,责任包括行为、数据、对象创建等。要 做好对象责任分配,首先,我们要明确对象责任的含义。面向对象设计过程 就是将责任分配给对象的过程。理解通用责任分配原则是理解设计模式的基 础。 1 ) i n f o m m t i o ne x p e r t ( 信息专家) 信息专家模式是面向对象设计的最基本原则,是我们平时使用最多,应 该跟我们的思想融为一体的原则。也就是说,我们设计对象( 类) 的时候,如 果某个类拥有完成某个职责所需要的所有信息,那么这个职责就应该分配给 这个类来实现。这时,这个类就是相对于这个职责的信息专家。这也是跟面 向对象里的单一职责原则相吻合。 2 ) c r e a t o r ( 创造者) 实际应用中,符合下列任一条件的时候,都应该由类a 来创建类b ,这 时a 是b 的创建者: a 是b 的聚合 a 是b 的容器 西南交通大学硕士研究生学位论文第8 页 a 持有初始化b 的信息( 数据) a 记录b 的实例 a 频繁使用b 3 ) l o w c o u p l i n g ( 低耦合) 低耦合模式的意思就是要我们尽可能地减少类之间的连接。其作用非常 重要; 7 低耦合降低了因一个类的变化而影响其他类的范围。 低耦合使类更容易理解,因为类会变得简单,更内聚。 4 ) h i g hc o h e s i o n ( 高内聚) 高内聚的意思是给类尽量分配内聚的职责,也可以说成是功能性内聚的 职责。即功能性紧密相关的职责应该放在一个类里,并共同完成有限的功能, 那么就是高内聚合。这样更有利于类的理解和重用,也便于类的维护。 5 ) c o n t r o l l e r ( 控制器) 用来接收和处理系统事件的职责,一般应该分配给一个能够代表整个系 统的类,这样的类通常被命名为“) 【) 【处理器”、“x x 协调器”或者“x x 会 话”。 6 ) p o l y m b r p h i s m ( 多态) 多态是面向对象的基本特征。在面向对象设计中,我们首先定义一个接 口或者抽象类,然后用具体的类实现,这时候,客户端调用的时候就要用多 态了。多态可以使设计的内聚程序提高。 7 ) p u r ef a b r i e a t i o n ( 纯虚构) 这里的纯虚构跟我们常说的纯虚构函数意思相近。高内聚低耦合,是系 统设计的终极目标,但是内聚和耦合永远都是矛盾对立的。高内聚以为这拆 分出更多数量的类,但是对象之间需要协作来完成任务,这又造成了高耦合, 反过来也是。该如何解决这个矛盾呢,这个时候就需要纯虚构模式,由一个 纯虚构的类来协调内聚和耦合,可以在一定程度上解决上述问题。 8 ) i n d i r e c t i o n ( 间接) 要避免对象间直接耦合,可以将协调组件或服务的职责分配给中间对象, 这个中间对象称为间接或中介对象。就想低耦合模式里说的一样,“两个不 同模块的内部类之间不能直接连接”,但是我们可以通过中间类来间接连接 两个不同的模块,这样对于这两个模块来说,他们之问仍然是没有耦合依赖 关系的。 西南交通大学硕士研究生学位论文第9 页 9 ) 受保护变化 预先找出不稳定的变化点,使用统一的接口封装起来,如果未来发生变化 的时候,可以通过接口扩展新的功能,而不需要去修改原来旧的实现。也可 以把这个模式理解为o c p ( 开闭原则) 原则,就是说一个软件实体应当对扩展 开发,对修改关闭。在设计一个模块的时候,要保证这个模块可以在不需要 被修改的前提下可以得到扩展。这样做的好处就是通过扩展给系统提供了新 的职责,以满足新的需求,同时又没有改变系统原来的功能。 2 设计模式能够解决的问题 2 2 1 设计模式能够适应系统变化的需要 1 满足用户需求不断变化 任何一个作过需求分析的人都有这样的体会:用户的要求是最难把握和 预知的,而且往往朝令夕改。需求的多变或者误导使得程序开发人员的工作 陷入极其尴尬的境地,常常是个功能开发到中途的时候就需要重新设计甚 至完全废弃不用。另一方面,在未来的几年之内可能需要添加新的功能,这 给整个系统的设计和实现造成了极大的困难,也是开发人员所面i 临的最严峻 的考验【i 。 但是,我们不能指望用户能够提交份清晰、完整且容易理解的需求说 明,并且预见性的给出系统的扩展方向。所有的工作都是靠开发人员自己去 完成。 通过采用设计模式能够给出一个合理的系统构成方案,在实现现有功能 要求的基础上做好随时修改和扩充的准备。 2 方便移植对平台依赖性强的系统 外部的操作系统接口和a p i 在不同的软硬件平台上是不同的。依赖于特 定平台的软件很难移植到其他平台上,甚至都很难跟上本地平台的更新。 通过采用设计模式,我们能够使一个系统尽可能方便的从一个平台移植 到另一个平台上,而不必重新编写具体功能的代码。 3 易于修改或更换系统中用到的算法 算法在开发和复用时常常被扩展、优化和替代。依赖于某个特定算法的 对象在算法发生变化时不得不变化。 西南交通大学硕士研究生学位论文第1 0 页 通过采用设计模式,能够把可能发生交化的算法独立出来,以便随时修 改甚至运行时替换。 4 降低类或对象之间紧密耦合u 珂 在很多情况下,系统中的类或者对象之间需要进行复杂的通信,这就使 得通信双方( 或多方) 产生了一种紧密耦合关系。当其中的一方发生变化时, 与之相关的各个类或对象都需要随之变化,它们的变化又导致更多的类或对 象发生变化,如同一种滚雪球效应,变化波及的个体越来越多,最终造成系 统整体或局部的瘫痪。 通过采用设计模式,我们能够为系统建立起一种松散而有效的新秩序。 2 2 2 设计模式支持复用的需求 一个开发人员在他的职业生涯中,常常会遇到很多类似或相同的问题。 当他发现某个功能需求是他曾经实现过的,就会不自觉地使用原来的方法和 方案。内行的设计者都知道:不是解决任何问题都需要从头做起。如果我们 引入一种方法,可以找到与自然问题相关的对象,以适当的粒度将它们归类, 再定义类的接口和继承层次,建立对象之间的基本关系,那么当我们再次遇 到同一个问题的时候,就可以很方便的把原来的工作成果运用到其中。这是 对经验的借鉴,是提高效率的一种很有效的途径。甚至,当大部分的开发人 员都依照相同的方式工作,人和人之间就可以借鉴彼此之间的成果【l ”。 2 3 设计模式与组件技术 2 3 1 组件技术介绍 组件( c o m p o n e n t ) 又可称为构件,一般认为,组件是一种定义良好的、独 立可复用的、具有一定功能的、能够独立工作或能同其它组件装配起来协调 工作的程序体,组件可以是原始的,也可以是组合的。它可以是一些功能模 块、被封装的对象类、软件框架、软件系统模型等。上世纪6 0 年代初,结构 化的模块式软件开发思想占据了主流地位,这时组件的含义是指一些定义良 好的函数包或功能模块:8 0 年代起,面向对象软件开发思想迅速发展起来, 这时组件的含义就是类库。而目前基于对象的组件软件体系结构中的“组件” 西南交通大学硕士研究生学位论文第1 1 页 是指可方便插入到语言、工具、操作系统、网络软件系统中的程序体和数据, 形象地说,组件可以被看成叫一种软件集成电路【1 5 】。 2 3 2 设计模式与组件的关系 组件技术是面向对象技术自然而然的革新。软件组件不是设计模式,类 库也不是设计模式。设计模式是描述解决问题的方法,并不能导致直接的代 码复用。设计模式一般要记录不同实现的正负面影响。而软件组件是一个计 算机可执行或可编译的软件成份,可被其它的组件或函数所调用,强调的是 可执行代码的复用。软件组件是用程序语言来书写的,可能是用来实现设计 模式的。比如,a c t i v e ? ( 控件是一类的软件组件,而不是设计模式。 2 4 设计模式与软件体系结构 2 4 1 软件体系结构介绍 软件体系结构是一个软件系统构件的组织结构,是它们之间的关联关系 以及支配系统设计和演化原则和方针。一般来讲,一个系统的软件体系结构 是由一组计算构件、构件之间的交互连接件以及构件和连接件如何结合在一 起的约束限制的描述组成的。一个特定的系统是用一些构件的集合和构件之 间的交互来定义的,而这样的系统又可以在大型的系统设计中作为一个复杂 的元素。客户和服务器、数据库、层次系统中的层都是构件的实例。软件体 系结构不仅指定了系统的组织结构和拓扑结构,而且还显示了系统需求和构 成系统元素之间的对应关系,提供一些设计决策的基本原理。一般来说,体 系结构模型辩明了构件和构件交互中结构和语义的差异。这些体系模型通常 又被组合起来定义更大的系统。理想情况下不同的体系结构描述的元素是独 立定义的,因此它们可以在不同的上下文中重复使用。这样体系结构建立的 这些单独的元素规格说明就可以被建造成体系结构级的子系统f 16 】。 软件体系结构描述了子系统、以及子系统间的关联,并按功能与非功能 的属性进行归类,体现出软件设计活动的成果。 软件体系结构的设计是整个软件开发过程中关键的一步。对于当今世界 上庞大而复杂的系统来说,没有一个合适的体系结构却要有一个成功的软件 西南交通大学硕士研究生学位论文第1 2 页 设计几乎是不可想象的。不同类型的系统需要不同的体系结构,甚至一个系 统的不同予系统也需要不同的体系结构。体系结构的选择往往会成为一个系 统设计成败的关键。 2 4 2 设计模式与软件体系结构的关系 软件体系结构必须明确标识不同的构件类型和它们的交互关系。构件通 常对应程序设计语言中的编译单元,连接通常为动态数据结构、初始化参数 等等。每种体系结构风格都定义了特定的构件类型、连接类型以及全局的控 制结构。而设计模式所提供的解是基本的结构,并不是详细、完整的解【1 7 】。 一个设计模式提供了对于一组设计问题的一般的解的框架,而不是预定义的 可拿来就用的模块。必须根据应用的具体需求实现设计模式。设计模式与软 件体系结构的区别在于: 1 软件体系结构描述了各种各样的系统设计,并不限于面向对象系统, 设计模式目前主要研究面向对象系统。 2 体系结构主要集中于系统全局的构造( 构件类型、连接类型、规则和 约束) ,设计模式着重解决粒度更小的、更为具体的设计问题【1 8 】。 3 体系结构提供了更为精确的描述语言,而设计模式的形式化研究刚刚 起步。 他们都强调设计的重用,有时把设计模式看成是小粒度的软件体系结构。 2 5 设计模式与软件框架 2 。5 1 框架介绍 框架是一个可复用的、“半成品”的应用程序,通过对框架的定制可以产 生满足客户具体需求的应用程序【1 外。从用户使用的角度:用户通过定制框架 形成满足他们具体需求的软件,这个过程是简单的,复杂的内部结构必须对 用户隐藏。从设计复用的角度:框架完整地描述了一个领域内的设计概念, 可以适合该领域内用户不同的需求。从实现复用的角度:可以通过继承或者 代理的方法来使用框架中的抽象类达到实现复用。其优点有:模块化、可复 用性、可扩展性、反向控制。 西南交通大学硕士研究生学位论文第1 3 页 2 5 2 设计模式与框架的关系 目前,相当多的人把软件框架与设计模式混为谈。其实,框架与模式 都是来自多个解决相关问题的应用,来自多个应用的实践经验,但软件框架 与设计模式是一组不同的概念,具有不同的含义。 软件框架是设计模式的特例化,它总是针对一个特定的应用领域嗍。软 件框架是用某种程序语言来书写。设计模式代表了在软件开发过程中特定场 景下解决重复发生的问题的方案。每一个设计模式都集中于一个特定的面向 对象设计问题或设计要点,描述了什么时候使用它,以及使用的效果和如何 取舍。一个使用设计模式的框架比不用设计模式的框架更可能获得高层次的 设计复用和代码复用。它们最主要的不同在于如下三个方面: 1 设计模式比框架更抽象。框架能够用代码表示,而设计模式只是其实 例才能表示为代码。框架的威力在于它们能够用程序设计语言编写,不仅可 以被学习,还能被直接执行和复用。从这个意义上说,框架是个物理实体, 而设计模式是个逻辑实体。框架可以看成是个或多个设计模式解决方案的 物理实现,而模式则指导如何实现这些方案。 2 设计模式是比框架更小的体系结构元索。一个典型的框架都包含多个 设计模式,而反之决非如此。 3 框架比设计模式更加特例化。框架总是针对一个特定的应用领域,而 设计模式基本可以被用于任何应用。 2 6 本章小结 本章详细介绍了设计模式基本理论,分析了设计模式的概念、种类、组 成和描述,比较了组件技术、框架技术、软件体系结构与设计模式的异同, 提出了现代软件开发中应用设计模式的必要性,并为下面几章中旅游管理系 统基于设计模式的具体实现打下了理论基础。 西南交通大学硕士研究生学位论文第1 4 页 第3 章旅游管理系统分析与设计 本文将介绍一个基于n e t 平台的系统开发实例,即旅游管理系统,它是 分布式旅游平台系统里的一个子系统。此项目是基于面向对象设计模式下进 行开发的。本章将结合旅行社各职能部门的具体需求,对旅游管理系统的功 能进行分析并划分功能模块,对系统的整体架构进行设计。 3 1 系统开发背景及目标 随着国内旅游业突飞猛进的发展,旅行社所要处理的事物越来越复杂。 当今旅行社日常工作信息量大,信息流处理效率低,财务和工作数据采集延 后,误差较大,人员流动较大,而且各个部门之间很难协调,针对这种情况, 开发旅游管理系统尤为必要。相对传统的手工办公,旅游管理系统可以明显 提高办公效率,节省企业的成本。旅游管理系统是针对中小旅行社的办公业 务所设计的。主要实现旅行社日常办公的信息化管理,提高旅游产品线路采 购效率、优化日常工作流程、实时掌握旅游信息的需求、及时发布旅游产品, 使得旅行社同行能够共享信息并及时做出反馈,极大方便了旅行社的日常工 作。 旅游管理系统是基于b s 结构的旅游业务管理系统。此系统可支持该公 司的旅游定单业务,完成内部管理和与旅游信息服务平台相连的功能。 “旅 游管理系统”供公司各部门人员和管理人员使用,首先通过身份验证,在授 权范围内业务人员进行各种相关业务的操作。主要功能是实现组团、地接、 财务等工作模块的标准化流程管理、环节控制,以及信息的录入、修改、查 询、报表的生成和输出。 该系统要求功能应比较完善,系统运行稳定、可靠,并且系统的功能模 块应易修改、易扩充,便于以后扩展。因此,在系统界面友好性、系统稳定 性、数据传输安全性上都有一定的要求。根据项目需求,项耳所需实现的主 要目标如下: 1 1 系统的设计应符合日常办公运作的需求,功能完备实用,简单易学, 界面友好清晰,方便用户使用。 2 ) 具有权限管理功能,各分部用户仅能录入、修改和查询与该分部工作 西南交通大学硕士研究生学位论文第1 5 页 有关的数据。员工的添加和删除只有经理可以操作。 3 ) 要对数据进行检验,保证数据有效性,在数据被破坏时,具有数据恢 复能力。 4 ) 系统应具有较好的可扩展性,简单易维护,易于扩充升级,在应用需 求变化时,能容易地加以调整。 5 ) 系统具有强壮的数据操作和数据处理能力。 国系统应具有安全高效的通信机制,防止信息泄密和对保密信息的非法 侵入。数据处理与传输系统应能保证数据传输过程的安全、用户权限控制、 数据交互的安全。 本论文通过对该旅游管理系统做介绍,以此为基础来研究设计模式。 2 开发平台与技术的选择 3 2 1 开发平台与语言的选择 由于n e t 是开发b s 结构应用系统的主要工具之一,支持多种开发语 言,又能完全满足w e b 服务开发人员和使用者的需求,并提供对x m l 和 s o a p 等w e b 标准的普遍支持。总的来说n e t 平台具有以下优势: 1 1 提供一个一致的面向对象的编程环境。 2 ) 完全支持w e b 服务。 3 ) 强大的类库支持。 4 ) 对微软的服务器产品无缝支持。 5 ) 对多种语言的支持。 c 撑是n e t 最主要支持的语言,它是在n e t 中推出的全新的语言,这种- 全新的面向对象的语言使得开发者可以快速地构建从底层系统到高层商业组 件的不同应用。它提供了一个管理性强、透明性好、类型安全的开发环境【2 1 1 。 它具有以下优点【2 2 】: 1 ) 简单,开发快速,执行效率高。 2 ) 面向对象,c 撑支持所有的面向对象的概念,比如封装、继承、多态性。 所有的东西都封装在类中,使得c 群代码更易读,减少潜在的命名冲突。为了 避免麻烦,c 群只允许一个基类,基类不能被派生类改写。 3 ) 类型安全,饼实施了最严格的类型安全检查机制,以便保护自己和垃 西南交通大学硕士研究生学位论文第1 6 页 圾回收器。 4 1 与w e b 开发相结合,由于饼是新的开发模式,所以可以更好地利用 现有的各种w e b 标准,如h t m l ,x m l ,s o a p 等。比如c 群可以将任何组 件转变成为w e b 服务,并且可以被运行于i n t e m e t 上的任何平台的任何应用 调用;w e b 服务框架可以让任何w e b 服务看起来类似于c 萍的内置对象,允 许开发人员继续使用自己熟练的开发方法;c 群允许直接将x m l 数据映射为 结构。 5 1 功能强,易于表现。c 样允许在任何对象上使用预定义或经过扩展的元 数据;在系统结构中可以使用区域属性,并将其添加到类、接口或其他元素 上。开发者可以独立测试各种元素上的属性。这使得一些如收集区域中对象 属性,或编写自动工具来保证区域中的类、接口是否被正确定义的工作变得 简单。 6 1 可扩展的协作能力。为了方便c c + + 开发人员,c 样采用了如下方法: 内置支持c o m 模型和w - m d o w s 平台a p i ;允许有限制地使用指针。这些为 开发人员提供了足够的开发控制能力。 7 ) 兼容性好。饼允许使用通用语言规范访问不同的a p i ,并进行检测; c 撑中的平台调用服务可以访问使用c 原型的原始a p i 。 综合以上分析,我们在系统开发中采用n e t 平台,采用c 群做开发语言。 3 2 2 数据库平台的选择 本系统使用的数据库系统是s q ls e r v e r2 0 0 0 ,s q ls e r v e r2 0 0 0 是 微软公司开发的一个基于结构化查询和客户机服务器模型的高性能和关系 数据库管理系统。它的体系结构经过了很大的优化,简化了数据库应用的开 发,维护和管理工作,它使应用程序可扩展到多种平台,从个人系统( 个人计 算机) 到比较高端的对称多处理服务器,s q ls e r v e r2 0 0 0 改进的查询处理 支持新的算法,如索引交换,哈希连接以及并行查询执行,可以加速对超大 型数据库的查询处理,查询处理还支持对分布式和异种数据库的查询能力, 用于从o l e d b 与o d b c 数据源询问数据。它是在s q l s e r v e r 7 0 的基础 上,在关系型数据库、关系数据的x m l 集成、图形管理、复制、数据转换 服务以及联机帮助等方面均得到了很大的增强,在i n t e r n e t 方面的数据安 全性更高,而且使用非常方便,是进行数据库管理和开发的首选工具【2 引。 西南交通大学硕士研究生学位论文第1 7 页 3 3 系统业务需求分析 旅游管理系统是一个综合性的旅行社办公应用系统,是对旅游行业日常 业务的管理系统。旅行社
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 铁路局机务考试题及答案
- 2025年广西壮族自治区纪委监委公开遴选公务员笔试试题及答案解析
- 山西联合体考试题及答案
- 农业科研技术合作开发合同书
- 技士证考试题库及答案
- 鞍山中考模拟考试题及答案
- 岳阳二中考试题目及答案
- 信阳九中分班考试试卷及答案
- 日本驾考笔试题库及答案
- 人事管理人员笔试试题及答案
- GB/T 21073-2007环氧涂层七丝预应力钢绞线
- 压力管道特性表
- 胸痛的诊断和鉴别诊断课件整理
- 高级会计师评审个人业绩报告(精选9篇)
- DB45-T 679-2017城镇生活用水定额-(高清可复制)
- 储能型虚拟电厂的建设与思考分析报告
- 楼地面装饰构造(史上最全面)
- 五四制青岛版2022-2023四年级科学上册第二单元第6课《测量距离和时间》课件(定稿)
- 海关AEO管理体系高级认证企业名录
- 《国家自然科学基金申请经验交流》PPT共30页课件
- 高聚物材料的阻燃PPT
评论
0/150
提交评论