模式到应用的详细信息 |
此样本是一组共 8 个模式。在这些模式中,有很多在名称和功能上都类似于业界接受的模式。* 部分模式由其它更详细的模式使用,称为“微模式”。 实施模式(两个参数,一个参数依赖关系,一个微模式) 实施模式是一个独立的原始模式,在自身的实施中不利用任何其它模式。它是一个十分简单的模式,确保从实施实参到接口实参之间存在 UML 实施关系。 接口模式(两个参数,一个参数依赖关系,复用一个模式) 接口模式是由几个其它样本模式复用的模式,同时也在自身的实施中复用模式。实施模式是非常原始的模式(也称为“微模式”),并由接口模式使用来确保实施实参实现接口实参。接口模式有两个参数,一个表示接口,另一个表示实施。它包含一个示例,说明使用模式定义用法和模式依赖关系代表的基本代表映射。这是一个非常基本但仍起作用的模式,在模式文档的其它部分也提到了该模式。此模式也显示模式代表和定制代码的结合使用,以实施模式的依赖关系更新方法。实施模式被复用以确保实施关系,然后定制的更新方法代码被用来确保实施在接口实参上实现所有定义的操作。 关键字列表模式(两个参数,一个参数依赖关系,一个微模式) 关键字列表模式是一个独立的原始模式,在自身的实施中不利用其它模式。它还演示 UML 文字串和抽象 UML 元类型作为参数类型的用法。此模式还包含适当的功能,来正确地确保没有绑定作为实参的模式语义并且没有应用模式实例。关键字列表模式自身可以从“模式浏览器”视图实例化,但它更适合于通过模式代表机制由其它模式复用。 定向关联模式(六个参数,五个参数依赖关系, 一个微模式) 定向关联模式是另一个独立的原始模式,并且是一个由其它更细化的模式使用的微模式。定向关联模式有两个主要参数,这两个参数为定向关联设置环境。它还有五个其它辅助参数,通过配置关联类型、角色名称和多重性,帮助形成关联。此模式由样本委托模式复用,并作为示例,说明一个包含很多不大常见的参数类型的模式。此模式定义中使用了文字串、整数和模式枚举。当模式作者学习创作具有类似参数类型的模式时,在此样本中提供的用于处理这些字面值和枚举的模式代码非常宝贵。 委托模式(两个参数,一个参数依赖关系,复用三个模式) 委托模式有两个参数:一个参数表示委托者,另一个参数表示委托模式中的代表。委托者将定义在代表接口中并由委托者实施的操作委托给代表类型的实例。此模式演示代表映射过滤器的用法,以定制绑定到关键字列表模式复用实例的关键字名称。此名称的定制不是提供委托模式的有用实施所必需的,但此样本增加了此功能以演示代表映射过滤器的用法。 策略模式(三个参数,两个参数依赖关系,复用两个模式) 策略模式是基于一般所知的策略模式的。它复用关键字列表和接口样本模式并包含一个参数代表映射的示例。它有三个参数,一个表示策略接口,一个表示具体策略,还有一个表示策略本身的环境。要演示关键字列表模式的复用,该模式要确保 <<Strategy>> 关键字出现在策略接口参数的实参中。接口模式被复用以确保策略接口是由具体策略参数的绑定实参实施的。 单一模式(无参数) 单一模式是基于公共已知的单一模式的。它是无参数模式的示例。它有一个隐式参数,该参数可被视作参数实例本身。此模式将模式实例表示成类,而不是按更通常的情况表示成协作。在功能上,此模式的用法是将其从“模式浏览器”视图拖至需要确保唯一性的类。将此模式拖至图表面(程序包中)会产生新的单一实例,并且因而新建类来表示此实例。 抽象工厂模式(五个参数,五个参数依赖关系,复用一个模式) 抽象工厂模式是基于公共已知的抽象工厂模式的。它复用接口模式并因而在将行为委托给接口模式期间演示依赖关系代表。它是抽象工厂模式的退化实施,因为所有具体产品实现绑定的所有抽象产品接口。它举例说明如何使用参数依赖关系来保持模式语义得到确保(随着其它实参被绑定到模式)。正如单一模式使用协作以外的方式来表示模式实例,此模式使用的是程序包。此模式的实例是程序包。 * Design Patterns: Elements of Reusable Object-Oriented Software,Gamma、Helm、Johnson 和 Vlissides 合著(Addison-Wesley,1995),copyright (c) 1995 by Addison-Wesley Publishing Company, Inc. All rights reserved. |