封装的策略算法一般是独立的,策略模式根据输入来调整采用哪个算法。关键是策略的实现和使用分离。
#include <iostream>
using namespace std;
class Strategy
{
public:
virtual void handle()
{
}
};
class StrategyA :public Strategy
{
public:
void handle()
{
cout << "AAAAAAAAAAAAA" << endl;
}
};
class StrategyB :public Strategy
{
public:
void handle()
{
cout << "BBBBBBBBBB" << endl;
}
};
class Content
{
public:
Content(Strategy *pStrate) :m_strategy(pStrate)
{
}
void process()
{
m_strategy->handle();
}
private:
Strategy *m_strategy;
};
int main()
{
StrategyA *a = new StrategyA;
Content *pContent = new Content(a);
pContent->process();
return 0;
}
可参考 https://blog.csdn.net/skylinesky/article/details/7583546