一、意图:
定义一些列的算法,把他们一个个封装起来,使其可以相互替换。
二、类图:
三、组成元素:
i. Strategy:策略
ii. ConcreteStrategy:具体策略
iii. Context:使用环境
四、实现代码:
#include "iostream" using namespace std; class Strategy { public: virtual void AlgorithmInterface()=0; }; class ConcreteStrategyA:public Strategy { public: void AlgorithmInterface() { cout<<"AlgorithmInterface A"<<endl; } }; class ConcreteStrategyB:public Strategy { public: void AlgorithmInterface() { cout<<"AlgorithmInterface B"<<endl; } }; class ConcreteStrategyC:public Strategy { public: void AlgorithmInterface() { cout<<"AlgorithmInterface C"<<endl; } }; class Context { private: Strategy* p_Strategy; public: Context(Strategy* p_s) { p_Strategy=p_s; } void ContextInterface() { if (NULL!=p_Strategy) { p_Strategy->AlgorithmInterface(); } } }; void main() { Strategy* pStrategy=new ConcreteStrategyA(); Context* pContext=new Context(pStrategy); pContext->ContextInterface(); }