一、意图:
定义一些列的算法,把他们一个个封装起来,使其可以相互替换。
二、类图:
三、组成元素:
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(); }
本文介绍了一种设计模式——策略模式,并通过具体的代码实例展示了如何定义一系列的算法并将它们封装起来,以便于在不同的环境中进行相互替换。
1836

被折叠的 条评论
为什么被折叠?



