`
kmplayer
  • 浏览: 498454 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

设计模式之策略模式

阅读更多
1,策略(strategy)模式特征:运行时选择算法,可以用多种方法来解决某个问题.
2,实例代码
#include <iostream>
using namespace std;

class Strategy
{
public:
    virtual void greet()=0;
};

class Reject : public Strategy
{
protected:
    void greet(){ cout<<"Reject"<<endl; }
};
class Ignore : public Strategy
{
protected:
    void greet(){ cout<<"Ignore"<<endl; }
};
class Admission : public Strategy
{
protected:
    void greet(){ cout<<"Admission"<<endl; }
};

class RunStrategy
{
    Strategy& base;
public:
    RunStrategy(Strategy& s) : base(s) {}
    //这里方法的定义
    void greet(){ base.greet(); }
};


int main()
{
    Reject r;
    Ignore i;
    Admission a;
    RunStrategy rs1(r),rs2(i),rs3(a);
    rs1.greet();
    rs2.greet();
    rs3.greet();
    return 0;
}
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics