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;
}
分享到:
相关推荐
设计模式之策略模式 鸭子问题 策略模式是一种经典的设计模式,通过鸭子问题,可以让学习者更好地了解设计模式的概念和实现。策略模式的主要思想是定义一系列的算法,并将每一个算法封装起来,使它们可以相互替换。...
策略模式是一种行为设计模式,它使你能在运行时改变对象的行为。在软件开发中,我们经常遇到需要根据不同的条件或场景来执行不同算法的情况。策略模式就是为了解决这类问题而提出的,它将每种算法封装到具有共同接口...
Java 设计模式之策略模式与状态模式 策略模式是 Java 中的一种设计模式,它主要用于解决系统与第三方接口进行数据交互的问题。当系统需要与多种格式的数据进行交互时,使用策略模式可以很好地解决这个问题。例如,...
在给定的"设计模式之策略模式源码"工程中,我们可以看到通过一个简单的收银系统来展示策略模式的应用。收银系统是一个常见的业务场景,其中可能涉及多种结算策略,如折扣、满减、会员优惠等。通过策略模式,我们可以...