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;
}
分享到:
相关推荐
设计模式中的策略模式,同时兼容简单工厂模式,商场收银模式,易懂可用。
55-Java设计模式之策略模式与状态模式1
走进设计模式之 策略模式(Strategy) 代码
设计模式之策略模式,简单易懂,方便自己以后忘记进行阅读
java设计模式之策略模式实现源码
设计模式之策略模式讲解ppt,完整代码详见:https://blog.csdn.net/sinat_35866463/article/details/89094887
设计模式之策略模式源码(C#+.NET6)
这是策略模式中的一个经典实例,通过鸭子问题,能让学习者更好的了解设计模式,这也是headfirst 设计模式中用的经典实例
Java设计模式之策略模式的详细描述
java设计模式之策略模式 内含策略模式讲解ppt 自己根据ppt写了一个小例子 先不用策略模式 后用策略模式 形成了鲜明对比 对初学者很有用
JavaScript 设计模式之策略模式.zip
设计模式之策略模式与模板模式