Rational Software Architect入门教程
本文向您介绍设计模式的基础,并解释了IBM Rational Software Architect如何促进基于设计模式的开发。文中还介绍了一些关于设计模式的实例,并告诉您如何快速地建立类图及生成基于这些模式的代码。后继的文章将更详细地阐述本介绍性文章中所涵盖的内容。
设计模式是经常发上的设计问题的解决方案。模式描述了如何利用一组类来解决问题——换句话说,模式为您的系统的现有部分提供一个概括的蓝图。模式不包含算法,相反地,它关注于类之间的关系。通过使用设计模式,您能够利用已证实的导致更佳设计和更快实现的解决方案。设计模式还可以促进长期的代码维护。设计模式的基本目标是:
•使用接口
•使用合成而不用继承
•封装
对于设计模式为什么重要的不同问题,考虑一个管理列表的简单实例。在计算机科学课程中,您曾学过不同类型的列表:数组、哈希影射、链表、堆栈、队列等等。如果您用Java程序设计语言编过程序,您就很有可能使用过Collection接口和它的一些子类。那么,您会了解到所有的列表均有一个基本的操作:
迭代。您总是想要对列表进行迭代以得到其中存储的值。对于这样的一个任务,我会使用简单的设计模式,如Iterator,它着重于迭代列表的一般方法,以避免每次要遍历列表时重复构造。用于迭代数组(相对于LinkedList)的具体算法留给设计模式的实现部分。
Erich Gamma、Richard Helm、Ralph Johnson和John Vlissides——叫作Gang of Four,使模式普及起来。他们的著作《Design Patterns:Elements Of Reusable Object-Oriented Software》是软件架构师的必读书籍。书中定义了23种设计模式,所有的模式都包含于Rational Software Architect中。(要了解更多Gang of Four叙述的设计模式的信息,参见本文底部的参考资料。)现今,几乎每个大型的信息技术(information technology,IT)组织都采用了设计模式。Sun Microsystems使用了许多设计模式,并将设计模式应用到Java和Java2Platform Enterprise Edition(J2EE)技术上。Server Side Web站点是另一个很好的知识库,在其中,开发人员可以对设计模式做出贡献。
设计模式中的元素
设计模式由以下元素组成。您可以将此列表当作阅读或撰写设计模式的模板:
•模式名称:一个简短的富有表现力的名称
•意图:模式要做什么
•通称:该模式的其他名字
•动机:问题及该模式如何解决问题的实例
•适用性:该模式所应用的情景
•结构:代表该模式的类图
•参与者:类及其职责的描述
•协作:描述参与者之间的交互
•结果:描述交替使用、设计选择和使用该模式的影响
不论您是创建自己的模式,还是使用已经存在的模式,务必要密切地关注“适用性”部分。如果您在此部分中提供了足够的细节,那么其他用户将会很好地理解什么时候且如何使用您创建的设计模式。相反地,该部分将帮助您到最适合具体设计问题的模式。
设计模式的类型
Rational Software Architect包含所有23个Gang of Four模式。(但是,您还可以创建并添加自己的模
式。)这些模式分成三个类别:
generated•创建类,处理对象或类的创建
•动作类,处理类或对象如何交互及分配职责
•结构类,处理类或对象的组合
图1描述了一个每个类别之下的模式的完整列表。
图 1.Rational Software Architect中的设计模式
本文介绍了如何在Rational Software Architect中实现三个基本的设计模式。本文的意图不是使您成为设计模式的专家,而是向您介绍Rational Software Architect所具有的模式功能。
Rational Software Architect中的设计模式
Rational Software Architect(IBM Software Development Platform的一部分)允许架构师设计并维护应用程序体系结构。该工具建立在Eclipse之
上,因此开发人员和架构师可以利用Rational Software Architect中Eclipse 平台的可用特性。另外,该工具提供丰富的建模和体系结构设计及发现功能,超过典型的集成开发环境(IDE)所具有的特征。这是设计模式流行的原因。
注意:要了解更多关于Eclipse的信息,请参见参考资料部分。要了解更多关于Rational Software Architect的介绍信息,请参见我的文章“Introducing IBM Rational Software Architect:Improved usability makes software development easier”——也在参考资料部分。
为了展示在Rational Software Architect中使用设计模式是多么简单的一件事,我将描述一个名为Singleton模式的简单模式。
注意:本文中我所讨论的模式是为进行普通任务而随机选择的。
Singleton模式
如其名称所暗示的,当您想要特别类的仅仅一个实例时,才使用Singleton 模式。例如,如果您想要为一些数据库操作生成单键,那么您可以使用此创建类模式——在这种情况下,如果您想要一个用于返回这些键的类实例。在其他实例中,此模式也是有用的,包括登录和打印,例如,当您想要一个能够每次访问并控制一个特别打印机的类实例。
要想在Rational Software Architect中创建Singleton模式的实例,就执行以下步骤。(在此实例中,我并没有针对其他与此模式相关的问题,如保持同步以确保线程安全。)
1.创建一个新的统一建模语言(Create a new Unified Modeling Language,
UML)类图,然后打开上图1中显示的模式浏览器。
2.将Singleton模式实例从模式浏览器中拖拽到UML类图视图中。
3.在模式参数窗口中,定义一个参数,称为MySingleton(参见图2)。执
行此操作将会在模型浏览器中生成一个Singleton模式的实例。
4.将实例拖拽到图表上。
5.为Singleton模式创建私有属性,称为_instance。
6.为Singleton模式创建两个方法:构造函数是私有的,且有一个公有的
方法,称为getInstance()。
7.利用UML到Java的转换,为Singleton模式生成代码(参见清单1)。
图 2.一个Singleton模式的实例
注意:我将在本文的后部讨论该模式的实例化。要了解更多关于创建UML类图和UML到Java的转换的信息,请参看我的文章“Introducing IBM Rational Software Architect:Improved usability makes software development easier”(参见参考资料)。
那是个简单的模式。现在,我将为您展示一个稍微复杂的模式。
Factory方法模式
Factory方法模式是一个创建的模式,它定义一个用来创建对象的接口,而让子类来决定实例化哪个类。换句话说,Factory方法令一个类实例化到其子类。当一个应用程序需要实例化一个未知类型的类时,此模式是很有用的。只有当应用程序实际上需要该类,而不是在编译或运行时过程中,此类的类型才成为显式的。接下来的实例更进一步地解释了此概念。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论