zoukankan      html  css  js  c++  java
  • 策略模式

    策略模式(Strategy):定义了算法家族,分别封装起来,让它们之间可以互相替换,此模式让算法的变化,不会影响到使用算法的客户。[DP]

    以下为策略模式的实现代码。

     1 #include<iostream>
     2 using namespace std;
     3 
     4 class Strategy{
     5 public:
     6     Strategy(void){}
     7     virtual ~Strategy(void){}
     8 
     9     virtual void AlgorithmInterface()=0;
    10 };
    11 
    12 class ConcreteStrategyA:public Strategy{
    13 public:
    14     void AlgorithmInterface(){
    15         cout<<"ConcreteStrategyA:AlgorithmInterface()"<<endl;
    16     }
    17 };
    18 
    19 class ConcreteStrategyB:public Strategy{
    20 public:
    21     void AlgorithmInterface(){
    22         cout<<"ConcreteStrategyB:AlgorithmInterface()"<<endl;
    23     }
    24 };
    25 
    26 class Context{
    27 private:
    28     Strategy* strategy;
    29 public:
    30     Context(Strategy* s):strategy(s){}
    31     void setStrategy(Strategy* s){
    32         strategy=s;
    33     }
    34     void otherOperators(){
    35         cout<<"other operators"<<endl;
    36     }
    37 
    38     void execute(){
    39         if(strategy)
    40             strategy->AlgorithmInterface();
    41         otherOperators();
    42     }
    43 };
    44 
    45 int main()
    46 {
    47     ConcreteStrategyA strategyA;
    48     ConcreteStrategyB strategyB;
    49     Context context(&strategyA);
    50     context.execute();
    51     context.setStrategy(&strategyB);
    52     context.execute();
    53 
    54          return 0;
    55 }
  • 相关阅读:
    Android环境的构建
    [转载]java代码采用哈夫曼实现压缩软件
    [转载]java代码采用哈夫曼实现压缩软件
    用JAVA实现字符串压缩算法
    用JAVA实现字符串压缩算法
    J2ME 图片压缩算法
    J2ME 图片压缩算法
    C# 操作Excel
    csharp excel interop programming
    Sharepoint tools
  • 原文地址:https://www.cnblogs.com/freewater/p/2558693.html
Copyright © 2011-2022 走看看