设计模式之策略模式(使用C++)
2015-04-22 22:52
387 查看
#include <iostream> class Algorithm { public: virtual void add() = 0; virtual void sub() = 0; }; class AlgorithmA : public Algorithm { public: virtual void add() override { std::cout<<"Use A plan to add x and y"<<std::endl; } virtual void sub() override { std::cout<<"Use A plan to sub x and y"<<std::endl; } }; class AlgorithmB : public Algorithm { public: virtual void add() override { std::cout<<"Use B plan to add x and y"<<std::endl; } virtual void sub() override { std::cout<<"Use B plan to sub x and y"<<std::endl; } }; class Context { public: Context(Algorithm* plan) : _plan(nullptr) { _plan = plan; } ~Context() { if(_plan) { delete _plan; _plan = nullptr; } } public: void add() { _plan->add(); } void sub() { _plan->sub(); } private: Algorithm* _plan; }; int main() { Context* contextA = new Context(new AlgorithmA()); Context* contextB = new Context(new AlgorithmB()); contextA->add(); contextA->sub(); contextB->add(); contextB->sub(); delete contextA; delete contextB; system("pause"); return 0; }
我(Algorithm)有理论创建方法、讲解给各位听(A&B)、但是各位的实际方式不一样(plan),所以需要使用context进行统一管理。————策略模式。
相关文章推荐
- 设计模式之策略模式(strategy)--游戏角色使用武器
- Head First 设计模式 C++实现-Strategy(策略模式)
- Head First 设计模式 C++实现-Strategy(策略模式)
- Head First 设计模式 C++实现-Strategy(策略模式)
- 设计模式之使用Enum来实现strategy(策略模式系列2)
- 设计模式之C++实现(二)---策略模式(Strategy)
- ZZ: 使用 "接口" 了解设计模式--策略模式(多态)集合框架 泛型、文件、文件流 IO(流)
- 用C++实现设计模式中的策略模式
- 使用策略设计模式,反射,解决商城系统中的商品折扣问题
- 设计模式C++实现(2)——策略模式
- C++设计模式:策略模式
- 设计模式C++实现(2)——策略模式
- c++设计模式:策略模式(Strategy Pattern)
- 设计模式C++实现(2)——策略模式
- 设计模式系列1-----C++实现策略模式(Strategy)
- 设计模式C++描述----15.策略(Strategy)模式
- 浅学设计模式之策略<Strategy>模式及在android中的使用
- C++设计模式之二十一:Strategy(策略模式)
- 浅学设计模式之策略<Strategy>模式及在android中的使用
- 设计模式C++实现(2)——策略模式