软考中级

以下关于状态(State)模式和策略(Strategy)模式的叙述中,说法错误的是(48)。A.对于客户程序而言,State模式比Strategy模式更透明B.Strategy模式用来处理算法变化,State模式用来处理状态变化C.State模式的对象变化频率比Strategy模式的对象高D.State模式的“状态”是在对象外部,Strategy模式的“策略”是在对象内部

题目

以下关于状态(State)模式和策略(Strategy)模式的叙述中,说法错误的是(48)。

A.对于客户程序而言,State模式比Strategy模式更透明

B.Strategy模式用来处理算法变化,State模式用来处理状态变化

C.State模式的对象变化频率比Strategy模式的对象高

D.State模式的“状态”是在对象外部,Strategy模式的“策略”是在对象内部

如果没有搜索结果,请直接 联系老师 获取答案。
如果没有搜索结果,请直接 联系老师 获取答案。
相似问题和答案

第1题:

关于设计模式,下列说法正确的是( )。

A.原型(Prototype)和模板方法(Template Method)属于创建型模式
B.组合(Composite)和代理(Proxy)属于结构型模式
C.桥接(Bridge)和状态(State)属于行为型模式
D.外观(Facade)和中介(Mediator)属于创建型模式

答案:B
解析:
设计模式是一套被反复使用、多数人知晓的、经过分类的、代码设计经验的总结。使用设计模式的目的:让代码有可重用性、让代码更容易被他人理解、保证代码可靠性。设计模式使代码编写真正工程化;设计模式是软件工程的基石脉络,如同大厦的结构一样。设计模式一共包括23种,具体分类如下表所示。

第2题:

关于设计模式,下列说法正确的是(5)。

A.原型(Prototype)和模板方法 (Template Method)属于创建型模式
B.组合(Composite)和代理 (Proxy)属于结构型模式
C.桥接(Bridge)和状态(State)属于行为型模式
D.外观(Facade)和中介(Mediator)属于创建型模式

答案:B
解析:
设计模式是一套被反复使用、多数人知晓的、经过分类的、代码设计经验的总结。使用设计模式的目的:为了代码可重用性、让代码更容易被他人理解、保证代码可靠性。 设计模式使代码编写真正工程化;设计模式是软件工程的基石脉络,如同大厦的结构一样。设计模式一共包括23种,具体分类如下表所示。

第3题:

下图是(请作答此空)设计模式的类图,该设计模式的目的是( ),图中,ConcreteStrategy和Strategy之间是( )关系,Strategy和Context之间是( )关系。

A.适配器
B.桥接
C.装饰
D.策略

答案:D
解析:
适配器模式:将一个类的接口适配成用户所期待的。一个适配允许通常因为接口不兼容而不能在一起工作的类工作在一起,做法是将类自己的接口包裹在一个已存在的类中。桥接模式:将抽象部分与它的实现部分分离,使它们都可以独立地变化。装饰模式:指的是在不必改变原类文件和使用继承的情况下,动态地扩展一个对象的功能。它是通过创建一个包装对象,也就是装饰来包裹真实的对象。策略模式:定义一系列的算法,把它们一个个封装起来,并且使它们可以相互替换。类之间的关系主要有以下几种:(1)继承关系:是指子类自动地具有其父类的全部属性与操作,也称为父类对子类的泛化。在UML建模语言中,采用空心三角形表示,从子类指向父类。(2)关联关系:是指两个或多个类之间的一种静态关系,表现为一个类是另一个类的成员变量。在UML类图中,双向的关联可以有两个箭头或者没有箭头,单向的关联有一个箭头,带普通箭头的实心线指向被拥有者。(3)聚合关系:是整体与部分之间的关系,是强的关联关系。在UML中,聚合关系用带空心菱形的实心线,菱形指向整体。(4)依赖关系:也是类之间的一种静态关系,表现为一个类是另外一个类的局部变量。在UML中,依赖关系用带箭头的虚线表示,由依赖的一方指向被依赖的一方。

第4题:

创建型设计模式抽象了实例化过程,帮助一个系统独立于如何创建、组合和表示的那些对象。以下(48)模式是创建型模式。

A.组合(Composite)
B.构建器(Builder)
C.桥接(Bridge)
D.策略(Strategy)

答案:B
解析:
本题考查设计模式的基本概念。
每个设计模式描述了一个不断重复发生的问题,以及该问题的解决方案的核心。在面向对象系统设计中,每一个设计模式都集中于一个特定的面向对象设计问题或设计要点,何时适合使用它,在另一些设计约束条件下是否还能使用,以及使用的效果和如何取舍。
按照设计模式的目的可以分为创建型模式、结构型模式和行为型模式三大类。创建型模式与对象的创建有关,将实例化过程加以抽象,帮助—个系统独立于如何创建、组合和表示它的那些对象,包括FactoryMethod、Abstract Factory、Builder、Prototype和Singleton;结构型模式处理类或对象的组合,涉及如何组合类和对象以获得更大的结构,包括Adapter(类)、Adapter(对象)、Bridge、Composite、Decorator、Facade、Flyweight和Proxy;行为型模式对类或对象怎样交互和怎样分配职责进行描述,包括Interpreter、TemplateMethod、Chain of Responsibility、Command、Iterator、Mediator、Memento Observer State Strategy和Visitor。

第5题:

关于设计模式,下列说法正确的是( )。

A.原型(Prototype)和模板方法 (Template Method)属于创建型模式B.组合(Composite)和代理 (Proxy)属于结构型模式C.桥接(Bridge)和状态(State)属于行为型模式D.外观(Facade)和中介(Mediator)属于创建型模式


正确答案:B

第6题:

如下UML类图表示的是(43)设计模式。以下关于该设计模式的叙述中,错误的是(44)。

(54)

A.工厂方法

B.策略

C.抽象工厂

D.观察者


正确答案:C
解析:抽象工厂模式是一种常见的没计模式,它为一个产品家族提供了统一的创建接口。当需要这个产品家族的某一系列的时候,可以从抽象工厂中选出相对系的系列来创建一个具体的工厂类别。
抽象工厂模式针对的是多个产品等级结果。产品族:是指位于不同产品等级结构中,功能相关联的产品组成的家族。当有多个不同的等级结构的产品时,如果使用工厂方法模式就势必要使用多个独立的工厂等级结构来对付产品的等级结构。如果这些产品等级结构是平行的,会导致多个平行的工厂等级结构。抽象工厂模式使用同一个工厂等级结构负责不同产品等级结构产品对象的创建。

第7题:

(44)设计模式定义一系列算法,把它们一个个封装起来,并且使它们可相互替换。这一模式使得算法可独立于它的客户而变化。

A.策略(Strategy)

B.抽象工厂(Abstract Factory)

C.观察者(Visitor)

D.状态(State)


正确答案:A
观察者模式(有时又被称为发布-订阅Subscribe>模式、模型-视图View>模式、源-收听者Listener>模式或从属者模式)是软件设计模式的一种。在此种模式中,一个目标物件管理所有相依于它的观察者物件,并且在它本身的状态改变时主动发出通知。这通常透过呼叫各观察者所提供的方法来实现。此种模式通常被用来实作事件处理系统。单例模式是一种常用的软件设计模式。在它的核心结构中只包含一个被称为单例类的特殊类。通过单例模式可以保证系统中一个类只有一个实例而且该实例易于外界访问,从而方便对实例个数的控制并节约系统资源。如果希望在系统中某个类的对象只能存在一个,单例模式是最好的解决方案。适配器模式(有时候也称包装样式或者包装)将一个类的接口适配成用户所期待的。一个适配允许通常因为接口不兼容而不能在一起工作的类工作在一起,做法是将类自己的接口包裹在一个已存在的类中。装饰者模式。装饰模式是在不必改变原类文件和使用继承的情况下,动态的扩展一个对象的功能。它是通过创建一个包装对象,也就是装饰来包裹真实的对象。

第8题:

如下UML类图表示的是 (44) 设计模式。以下关于该设计模式的叙述中,A.工厂方法B.策略S

如下UML类图表示的是 (44) 设计模式。以下关于该设计模式的叙述中,

A.工厂方法

B.策略

C.抽象工厂

D.观察者


正确答案:C
本题考查面向对象方法中的设计模式知识。题中的类图是抽象工厂设计模式,该设计模式的意图是提供一个创建一系列相关或相互依赖对象的接口,而无需指定它们具体的类。使用抽象工厂设计模式的常见情形是:一个系统要独立于其产品的创建、组合和表示时;一个系统要由多个产品系列中的一个来配置时;当需要强调一系列相关的产品对象的设计以便进行联合使用时;当提供一个产品类库,而只想显示它们的接口不是实现时。对于希望使用已经存在的类,但其接口不符合需求的情形,应当考虑桥接设计模式。

第9题:

下列UML类图表示的是( )设计模式。该设计模式中,( )。

A.备忘录(Memento)

B.策略(strategy)

C.状态(State)

D.观察者(Observer)(47)


正确答案:D
解析:试题46:观察者模式(ObserVer)完美地将观察者和被观察的对象分离开。举个例子,用户界面可以作为一个观察者,业务数据是被观察者,用户界面观察业务数据的变化,发现数据变化后,就显示在界面上。面向对象设计的一个原则是:系统中的每个类将重点放在某一个功能上,而不是其他方面。一个对象只做一件事情,并且将它做好。观察者模式在模块之间划定了清晰的界限,提高了应用程序的可维护性和重用性。试题47:从图中可以看出,Observer对象与Subject是1对多的关系,且至少包含一个Subject对象。