第14章UML与设计模式

第14章UML与设计模式

ID:43643692

大小:93.13 KB

页数:4页

时间:2019-10-11

第14章UML与设计模式_第1页
第14章UML与设计模式_第2页
第14章UML与设计模式_第3页
第14章UML与设计模式_第4页
资源描述:

《第14章UML与设计模式》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、第14章UML与设计模式14.1为什么要使用设计模式面向对象设计时要考虑许多因素,如封装性、粒度(granularity)大小、依赖关系、灵活性、性能、可重用性等。如何确定系统中的类以及类之间的关系?什么是好的设计和不好的设计?哪些是设计时要努力达到的目标?这些都是软件设计屮不容易掌握的问题。要真正掌握软件设计,必须研究其它软件设计大师的设计,这些设计屮包含了许多设计模式(designpattern)o设计模式系统地命名、解释和评价了重要的、经常出现的00系统中的设计[GHJV94]。简单地说,设计模式是对某特定环境下某类问题的解决

2、方法。需要注意的是,这个解决方法要求是在特定环境下的,也就是说,只有在特定的环境下,这个解决方法才有效,如果是在不同的环境下,仍采用同样的解决方法,则可能会得到相反的效果。在软件开发中使用设计模式有以下好处:•简化并加快设计。从设计模式入手使得软件开发无需从底层做起,开发人员可以重用成功的设计,可节省开发吋间,同吋有助于提高软件质量。•方便设计者之间的通信。利用设计模式可以更准确地描述问题以及问题的解决方案,使解决方案具有一致性,使代码更容易理解。开发人员可以在更高的层次上思考问题和讨论方案。例如,如果所有人都理解Visitor设计

3、模式的意思,则开发人员可以用“建议采用Visitor设计模式來解决这个问题”这样的话來表达。•降低风险。由于设计模式已经过很多人的使用,已被证明是有效的解决方法,所以釆用设计模式可以降低失败的可能性。•有助于转到OO技术。一种新技术要在一个开发机构屮得到应用,会经历两个阶段,即技术获取阶段和技术迁移阶段。技术获取较容易,但在技术迁移阶段,市于开发人员对新技术往往会有抵触或排斥心理,对新技术可能带來的效果持怀疑态度,同时由于対新技术还是一知半解,所以要在一个开发机构中进行技术迁移并不是一件很容易的事。而设计模式是可重用的设计经验的总结

4、,已在实际的系统中多次得到成功应用,因此用这些成功的例子有助于说服开发人员采用新技术。14.2设计模式的历史设计模式这个概念最早是由美国伯克利大学教授克里斯托夫•亚历山大()提出来的。在20世纪70年代后期,亚历山大出版了基本有关建筑学的书。他在《模式语言》一书屮提出了设计模式的思想,讨论了设计模式在建筑学中的作用[]。在80年代,很多计算机开发人员根据亚历山大提出的设计模式思想开始在软件开发中有意识地使用设计模式,于是设计模式开始在计算机界流行起来。AbstractFactory设计模式1意图提供一个创建一系列相关或相互依赖对象的

5、接口,而无需指定它们具体的类。3动机考虑一个支持多种视感(look-and-feel)标准的用户界面工具包,例如Motif和PresentationManager0不同的视感风格为诸如滚动条、窗口和按钮等用户界血“窗口组件”定义不同的外观和行为。为保证视感风格标准间的可移植性,一个应用不应该为一个特定的视感外观硬编码它的窗口组件。在整个应用屮实例化特定视感风格的窗口组件将使得以后很难改变视感风格。为解决这一问题我们可以定义一个抽象的WidgetFactory类,这个类声明了一个用来创建每一类基本窗口组件的接口。每一类窗口组件都有一个

6、抽象类,而具体子类则实现了窗口组件对象的操作。客户调用这些操作以获得窗口组件实例,但客户并不知道他们正在使用的是哪些具体类。这样客户就不依赖于一般的视感风格,如下页图所示。WidgetFactory♦createScrollBar()

7、*jcreateWindow()MotifWidgetFactoryPMWidgetFactory♦createScrollBarf)^reateScrollBar()■crealeWindow()槿reateWindowf)•A每一种视感标准都对应与一个具体的WidgetFactory子类。每一子类

8、实现那些用于创建合适视感风格的窗口组件的操作。例如,MotifWidgetFactory的CreateScrollBar操作实例化并返回一个Motif滚动条,而相应的PMWidgetFactory操作返回一个PresentationManager的滚动条。客户仅通过WidgetFactory接口创建窗口组件,他们并不知道哪些类实现了特定视感风格的窗口组件。换言Z,客户仅与抽象类定义的接口交互,而不使用特定的具体类的接口。3适用性在以下情况可以使用AbstractFactory模式一个系统要独立于它的产品的创建、组合和表示吋。一个系统

9、要由多个产品系列屮的一个来配置时。当你要强调一系列相关的产品对象的设计以便进行联合使用时。当你提供一个产品类库,而只想显示它们的接口而不是实现时。4结构AbstractFactoryClientAbstractProductAConc

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。