Strategy(策略)模式是建立在哪些原则的基础上?

题目

Strategy(策略)模式是建立在哪些原则的基础上?

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

第1题:

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

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

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

第2题:

对我方有利型的谈判策略是建立在谈判双方互利互谅、有理有节原则基础上的谈判方式与技巧。


正确答案:错误

第3题:

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

A.备忘录(Memento)

B.策略(strategy)

C.状态(State)

D.观察者(Observer)(47)


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

第4题:

Strategy(策略)模式是一种定义算法家族的方法。


正确答案:正确

第5题:

Strategy(策略)模式对问题的解决方案是什么?以及如何实现?


正确答案: 解决方案是:将算法的选择和算法的实现相分离。让客户可以基于场景做出选择。
实现:让使用算法的类包含一个抽象类,抽象类中有一个抽象方法指定如何调用算法。每个派生类根据需要实现算法。

第6题:

Strategy模式的意图是什么吗?它有哪些效果?


正确答案: 意图是让你可以使用不同的业务规则或算法-----取决于它们出场的场景。
效果有:Strategy(策略)模式定义了一系列的算法;
Switch语句或条件语句得到了避免;
你必须以相同的方式调用所有的算法(它们必须拥有相同的接口)Concrete Strategies与Context之间的交互可能需要在Context中加入get State之类的方法。

第7题:

按照四人团的说法,Strategy策略模式的基本思想是什么?


正确答案:定义一系列的算法,把它们一个个封装起来,并且使它们可相互替换,使算法可独立于使用它的客户而变化。

第8题:

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

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

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

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

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


正确答案:D
解析:State(状态)模式的设计意图是:允许一个对象在其,内部状态改变时变更它的行为。而Strategy(策略)模式的设计意图是:定义一系列的算法,把它们一个一个地封装起来,并且使它们可相互替换。可见,Strategy模式用来处理算法变化,而State模式则是处理状态变化。strategy模式在概念结构上与state模式非常相似,但它们各自的目的不同。区分这两个模式的关键是看行为是由状态驱动还是由一组算法驱动。通常,State模式的“状态”是在对象内部的,Strategy模式的“策略”可以在对象外部。Strategy模式中,算法是否变化完全是由客户程序开始决定的,而且往往一次只能选择一种算法,不存在算法中途发生变化的情况。而State模式如其定义中所言,在它的生命周期中随时存在着状态的转变和行为的更改,而且状态变化是一个线形的整体。对于客户程序而言,这种状态变化往往是透明的。

第9题:

封装分布于多个类之间的行为的模式是()

  • A、观察者(Observer)模式
  • B、迭代器(Iterator)模式
  • C、访问者(Visitor)模式
  • D、策略(Strategy)模式

正确答案:C

第10题:

以下不属于行为型模式是?()

  • A、COMMAND(命令)
  • B、STRATEGY(策略)
  • C、MEMENTO(备忘录)
  • D、BRIDGE(桥接)

正确答案:D