策略模式
1.策略模式类似于简单工厂,策略模式针对算法,但是算法完成的任务相同,只是实现不同,它可以以相同的方式调用所有的算法,而简单工厂针对产生对象。
2.策略模式: 上下文类包含一个维护策略抽象类对象,需要哪种策略,就产生哪种策略。
class Strategy
{
virtual double action() = 0;
};
class Strategy1 : Strategy;
class Strategy2 : Strategy2;
class Context
{
private: Strategy m_strategy;
Context(Strategy tmp)
{
m_strategy = tmp;
}
public: double interface()
{
return m_strategy.action();
}
}
//客户端
Context context = new Context(new Strategy1);
context.interface();
//策略与简单工厂结合
可以在Context 策略里,利用简单工厂产生不同的子类对象,由策略内部维护的对象维护各子类对象。
优点在于,switch case 之类的逻辑可以不用客户端,使客户端基本不用与算法有任何接触。

浙公网安备 33010602011771号