问题 单项选择题

图5—1中UML类图所示意的设计模式的意图是______。在______情况中,应该使用该设计模式。


A.类将责任转给某个帮助子类,而用户希望定位那个被授权的帮助子类
B.创建复杂对象的算法独立于组成对象的部分及这些部分的集合方式
C.希望提供产品的类库,只开放其接口,而不是其实现
D.许多相关类只是在行为方面有所区别

答案

参考答案:D

解析: 图5-1中UML类图所描绘的设计模式中的Strategy(策略)模式。其设计意图是定义一系列的算法,把它们一个个封装起来,并且使它们可相互替换。换言之,Strategy(策略)模式使得算法可独立于使用它的客户而变化。在以下情况中,应该使用strategy设计模式:①许多相关类只是在行为方面有所区别;②需要算法的不同变体;③算法使用客户端未知的数据等。
Abstract Factory(抽象工厂)模式的设计意图是,为特定的客户(或情况)提供特定系列的对象。在以下情况中,应该使用Abstract Factory设计模式:①系统独立于产品的创建、组成及表示;②系统配置成具有多个产品的系列;③相关产品对象系列是共同使用的;④希望提供产品的类库,只开放其接口,而不是其实现等。
Builder(建造)模式的设计意图是,将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。在以下情况中,应该使用Builder设计模式:①创建复杂对象的算法独立于组成对象的部分及这些部分的集合方式;②构造过程必须允许已构建对象有不同的表示等。
Factory Method(工厂方法)模式也称为Polymorphic Factory(多态性工厂)模式或Virtual Constraactor(虚拟构造器),其设计意图是定义一个用于创建对象的接口,让子类决定实例化哪一个类。在以下情况中,应该使用Factory Method设计模式:①类不能预料它必须创建的对象的类;②类希望其子类指定它要创建的对象;③类将责任转给某个帮助子类,而用户希望定位那个被授权的帮助子类等。

读图填空题
判断题