利用UML描述常见的几种设计模式_第1页
利用UML描述常见的几种设计模式_第2页
利用UML描述常见的几种设计模式_第3页
利用UML描述常见的几种设计模式_第4页
利用UML描述常见的几种设计模式_第5页
已阅读5页,还剩7页未读 继续免费阅读

下载本文档

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

文档简介

1、软件体系结构实验六利用UML描述常见的几种设计模式一:实验目的掌握设计模式在软件设计中的作用,熟悉并了解一些常用的设计模式,进一步熟悉并巩固Rational Rose 2003与Visio2003工具的使用,熟悉并了解IBM Rational Software Architecture 6.0工具的建模方法。二:实验准备(1) 熟悉利用UMLRose2003与Visio2003建模的方法(2) 熟悉并了解软件设计模式(3) 熟悉并了解IBM Rational Software Architecture 6.0的建模方法。三:实验内容设计面向对象软件比较困难,而设计可复用的面向对象软件就更加困难

2、。你必须找到相关的对象,以适当的粒度将它们归类,再定义类的接口和继承层次建立对象之间的基本关系。 在设计时,应该对手头的问题有针对性,同时对将来的问题和需求也要有足够的通用性,同时也希望避免重复设计或尽可能少做重复设计。一个设计模式是软件开发中重复出现问题的解决方案;一种来源于具体问题形式的抽象,这种抽象在特定环境中出现;在给定的问题环境和约束条件下,对通用问题的重复解决方案;一种经过证明的、在给定条件下问题的有效的重复解决方案。它象一个“大金块”传递了解决方案的本质。(点石成金的方法)。经过多次成功使用,已经被证明的“最佳实践方法”;用文字、图表描述的方式来捕捉设计专家的智慧和经验,并把这些

3、经验传递给新手。对通用设计问题的重复解决方案,对真实世界问题的实践的/具体的解决方案面向特定的问题环境权衡利弊之后得到的“最佳”解决方案,领域专家和设计老手的“杀手锏”,用文档的方式记录的最佳实践,在讨论问题的解决方案时,一种可交流的词汇,在使用(重用)、共享、构造软件系统中,一种有效地使用已有的智慧/经验/专家技术的方式。在面向对象的软件设计中,可以利用UML对设计进行建模,对设计模式的建模包括建立内部视图和外部视图 设计模式的内部视图是一组类图和一组交互图。 设计模式的外部视图是一个参数化协作,协作参数命名。是模式的用户必须绑定的元素。本次实验要求同学们理解常见的组合模式(结构类型)、工厂

4、模式(构造类型)、责任链模式(行为类型)。并能根据具体的案例,选择相应的设计模式,并根据该设计模式所定义的组成元素,组成元素之间的关连关系、约束关系,利用UML作出具体的设计。 在IBM Rational Software Architecture 6.0中,提供了Goff所总结的23种常见模式的模板,我们可以根据这些模板,实例化模板的参数,最后得到一个具体的某种模式的设计。图1-图3描述了组件的一个设计。图一:组件的设计模式图(IBM RSA6.0中建模)图二:组件的设计模式图主题图(IBM RSA6.0中建模)图三:组件的浏览图(IBM RSA6.0中建模)一:组合模式:一个例子:组件可以

5、分为原子组件与组合组件,原子组件是不能再分解的一个组件单元,组合组件则是由多个组件组成,而组成组合组件的这些组件既可以是原子组件,也可以是组合组件。这样,原子组件可以通过组合构成一个组合组件,原子组件与组合组件又可以通过组合构成更大的组合组件。我们可以通过组合模式来设计一个组合组件的模型,图三是利用IBM RationalSoftwareArchitecture所提供的组合模式设计出来的组件的结构。图四是利用Rational Rose类图描述的组件的结构图。图四:组件类图(Rose2003) 图形可以看成是一些基本图形元素与组合图形元素的组合体,其中基本的图形元素包括点,线,园,矩形,椭圆形,

6、射线等基本元素。而一个最简单的组合图形元素是这些基本图形元素组合在一块形成的组合。通过组合,最终可以构成用户所需要的图形。图五描述了一个构成的例子。一个文件夹由文件以及文件夹组成,而在这个文件夹里可能也是由文件及文件夹组成,因此,文件夹也是一种组合模式的实例,请根据上面所提供描述内容,利用组合模式画出图形元素、文件夹的UML结构图。图五:一个图形例子图六:一个文件夹的例子 二:责任链模式: 责任链模式是使多个对象都有机会处理请求,从而避免请求的对象和接收的对象之间的耦合关系,将这些对象连成一条链,并沿着这条链传递该请求,直到有一个对象处理它为止。例如一个图形用户界面中的上下文有关的帮助机制,用

7、户在界面的任一部分上按F1键就应该可以得到帮助信息,所提供的帮助依赖于点击的是界面的哪一部分以及上下文环境。显然,在这种模式中,我们应根据从最特殊到最普遍的顺序来组织帮助信息,这样,用户所得到的帮助应是最体现了用户的需求。图七 对象责任链类之间调用图根据上面的提示,请画出它们之间的对象交互图以及类图。图八:帮助责任链序列图 图九:责任链类图 抽象工厂模式与工厂模式: 抽象工厂模式与工厂模式的区别:抽象工厂模式比工厂模式更复杂,更灵活,一个抽象工厂模式或以先创建出多个具体的工厂,这些具体的工厂再创建出具体的产品。抽象工厂模式关键在于工厂类是多层次的,有父工厂类和子工厂类,父工厂类可以产生子工厂类,再由子工厂类生产出产品,这样产品也可以是由复杂关系的,也可以说多种的。创建产品时,它是由具体工厂的实例的操作来完成的。 抽象工厂模式:多个抽象产品类,每个抽象产品类可以派生出多个具体产品类。 工厂方法模式:一个抽象产品类,可以派生出多个具体产品类。由这些类来创建实例图十:生成不同平台的控件的设计图(简化了的抽象工厂模式)图十一:生成不同控件的设计图(工厂模式)根据上面分析与实例所描述抽象工厂模式与工厂模式的区别及联系,考虑一个游戏中的人物的创建,试着利用这两种模式对游戏中创建人物的方法进行建模。(提示:为了描述在不同的场景中的人物建立,可以认为不同的场景是不同

温馨提示

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

评论

0/150

提交评论