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

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


相关考题:

阅读下列函数说明和C++代码,回答问题[说明]任何一种程序都是为了解决问题而撰写的,解决问题时需要实现一些特定的运算法则。在策略(Strategy)模式下,可以更换实现算法的部分而不留痕迹,切换整个算法,简化改为采用其他方法来解决同样问题。以下是一个“剪刀石头布”游戏。猜拳时的“策略”有2种方法:第一种是“猜赢后继续出同样的招式”(WinningStrategy),第二种是“从上一次出的招式中,以概率分配方式求出下一个招式的几率”(ProbStrategy)。程序中定义了Hand类表示猜拳时的“手势”,类内部以0(石头)、1(剪刀)、2(布)来表示。Hand类的实例只会产生3个。以下是C++语言实现,能够正确编译通过。[C++代码]class Hand{private:int handvalue;static Hand *hand0;static Hand *hand1;static Hand *hand2;(1) ;Hand(int handvalue){this-handvalue = handvalue;}public:(2) Hand* getHand(int handvalue){/*省略具体实现*/}};Hand *Hand::hand0 = new Hand(0);Hand *Hand::hand1 = new Hand(1);Hand *Hand::hand2 = new Hand(2);class Strategy{public:(3) Hand* nextHand() = 0;};class WinningStrategy : public Strategy{private:bool won;Hand *prevHand;public:winningStrategy(){won = false;}Hand* nextHand(){if(!won){prevHand = Hand::getHand(rand()%3);}return prevHand;}};class probstrategy : public Strategy{public:Hand* nextHand(){int handvalue = 0;/*省略具体实现*/return Hand::getHand(handvalue);}};class Player{private:string name;Strategy* strategy;public:Player(string name, (4) strategy){this-name = name;this-strategy = strategy;}Hand *nextHand()(//向战略请示手势return (5) ;}};

阅读以下说明和Java代码,回答问题[说明]任何一种程序都是为了解决问题而撰写的,解决问题时需要实现一些特定的运算法则。在策略(Strategy)模式下,可以更换实现算法的部分而不留痕迹,切换整个算法,简化改为采用其他方法来解决同样问题。以下是一个“剪刀石头布”游戏。猜拳时的“策略”有2种方法:第一种是“猜赢后继续出同样的招式”(WinningStrategy),第二种是“从上一次出的招式种,以概率分配方式求出下一个招式的几率”(ProbStrategy)。程序中定义了Hand类表示猜拳时的“手势”,类内部以0(石头)、1(剪刀)、2(布)来表示。Hand类的实例只会产生3个。以下是Java语言实现,省略了不相关属性及方法,方法实现体亦有所省略,能够正确编译通过。[Java代码]//Hand.java文件public class Hand{public static final int HANDVALUE_GUU = 0; //石头public static final int HANDVALUE_CHO = 1; //剪刀public static final int HANDVALUE_PAA = 2; //布public static final Hand[] hand = {new Hand(HANDVALUE_GUU),new Hand(HANDVALUE_CHO),new Hand(HANDVALUE_PAA),};private int handvalue;(1) Hand(int handvalue){this.handvalue = handvalue;}public (2) Hand getHand(int handvalue)(//从值取得对象实例return hand[handvalue];}}//Strategy.java文件public interface Strategy{public (3) Hand nextHand();}//ProbStrategy.java文件import java.util.Random;public class ProbStrategy implements Strategy{public Hand nextHand(){int handvalue = 0;/*省略具体实现*/return Hand.getHand(handvalue);}}//WinningStrategy.java文件import java.util.Random;public class WinningStrategy implements Strategy {/*省略了不相关属性*/public Hand nextHand(){if(!won){prevHand = Hand.getHand(random.nextInt(3));}return prevHand;}}//Player.java文件public class Player {private String name;private Strategy strategy;public Player(String name, (4) strategy){this.name = name;this.strategy = strategy;}public Hand nextHand(){//向战略请示手势return (5) ;}}

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

可以认为原型化方法是确定软件需求的策略,是一种【 】需求定义策略。

(44)设计模式定义一系列算法,把它们一个个封装起来,并且使它们可相互替换。这一模式使得算法可独立于它的客户而变化。A.策略(Strategy)B.抽象工厂(Abstract Factory)C.观察者(Visitor)D.状态(State)

下图是(请作答此空)设计模式的类图,该设计模式的目的是( ),图中,ConcreteStrategy和Strategy之间是( )关系,Strategy和Context之间是( )关系。A.适配器B.桥接C.装饰D.策略

( )模式定义一系列的算法,把它们一个个封装起来,并且使它们可以相互替换,使得算法可以独立于使用它们的客户而变化A.命令(Command) B.责任链(ChainofResponsibility) C.观察者(Observer) D.策略(Strategy)

异常处理机制可理解为哪一种行为模式()A、观察者(Observer)模式B、迭代器(Iterator)模式C、职责链(Chain of Responsibility)模式D、策略(Strategy)模式

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

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

从Strategy模式的概念上来说,所有算法都做相同的工作,且拥有相同的实现。

封装分布于多个类之间的行为的模式是()A、观察者(Observer)模式B、迭代器(Iterator)模式C、访问者(Visitor)模式D、策略(Strategy)模式

Strategy模式使得算法可独立于使用它的客户而变化。

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

Java的异常处理机制可理解为哪一种行为模式()A、观察者(Observer)模式B、迭代器(Iterator)模式C、职责链(Chain of Responsibility)模式D、策略(Strategy)模式

IKE主模式第一阶段是策略协商阶段,协商完成()属性。A、加密算法B、散列算法C、验证方法D、共享密钥

以下哪一个模式是对算法的封装,它把算法的责任和算法本身分割开,委派给不同的对象管理()A、策略模式B、模版方法模式C、解释器模式D、迭代器模式

对于安全网关的“白名单”模式,正确的说法是()A、缺省放行,策略定义阻断的对象B、是一种更安全的的工作模式C、缺省阻断,策略定义放行对象D、这种模式下,即使不能识别的应用也不会造成危害

单选题异常处理机制可理解为哪一种行为模式()A观察者(Observer)模式B迭代器(Iterator)模式C职责链(Chain of Responsibility)模式D策略(Strategy)模式

填空题()模式是一种定义一系列算法的方法

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

单选题关于模式适用性,在以下情况不适合使用STRATEGY(策略)模式?()A当一个对象必须通知其它对象,而它又不能假定其它对象是谁。换言之,你不希望这些对象是紧密耦合的B许多相关的类仅仅是行为有异。“策略”提供了一种用多个行为中的一个行为来配置一个类的方法C需要使用一个算法的不同变体。例如,你可能会定义一些反映不同的空间/时间权衡的算法。当这些变体实现为一个算法的类层次时可以使用策略模式D算法使用客户不应该知道的数据。可使用策略模式以避免暴露复杂的、与算法相关的数据结构

单选题Java的异常处理机制可理解为哪一种行为模式()A观察者(Observer)模式B迭代器(Iterator)模式C职责链(Chain of Responsibility)模式D策略(Strategy)模式

单选题以下哪一个模式是对算法的封装,它把算法的责任和算法本身分割开,委派给不同的对象管理()A策略模式B模版方法模式C解释器模式D迭代器模式

判断题Strategy模式使得算法可独立于使用它的客户而变化A对B错

单选题封装分布于多个类之间的行为的模式是()A观察者(Observer)模式B迭代器(Iterator)模式C访问者(Visitor)模式D策略(Strategy)模式

判断题Strategy(策略)模式是一种定义算法家族的方法。A对B错