策略模式
2013-10-24 14:27
369 查看
#include <iostream>
using namespace std; class StrategyInterface { public: virtual void execute() = 0; }; class ConcreteStrategyA: public StrategyInterface { public: virtual void execute() { cout << "Called ConcreteStrategyA execute method" << endl; } }; class ConcreteStrategyB: public StrategyInterface { public: virtual void execute() { cout << "Called ConcreteStrategyB execute method" << endl; } }; class ConcreteStrategyC: public StrategyInterface { public: virtual void execute() { cout << "Called ConcreteStrategyC execute method" << endl; } }; class Context { private: StrategyInterface *_strategy; public: Context(StrategyInterface *strategy):_strategy(strategy) { } void set_strategy(StrategyInterface *strategy) { _strategy = strategy; } void execute() { _strategy->execute(); } }; int main(int argc, char *argv[]) { ConcreteStrategyA concreteStrategyA; ConcreteStrategyB concreteStrategyB; ConcreteStrategyC concreteStrategyC; Context contextA(&concreteStrategyA); Context contextB(&concreteStrategyB); Context contextC(&concreteStrategyC); contextA.execute(); contextB.execute(); contextC.execute(); contextA.set_strategy(&concreteStrategyB); contextA.execute(); contextA.set_strategy(&concreteStrategyC); contextA.execute(); return 0; }
相关文章推荐
- 三维建模的相关网站或者博客参考集锦
- GridView匯出Excel(NPOI篇)[2]
- verilog中wire与reg类型的区别
- Redis命令总结
- QT获得目下的所有文件名
- String(day08-13.10.24)与StringBudiler()
- GridView匯出Excel(NPOI篇)[1]
- Install ServiceDesk Plus as a Linux Service
- JSP入门 Listener
- 让JAVA窗口居中的方法
- 适配器模式
- 用户和组
- 关于VS 2010 LINK : fatal error LNK1123: 转换到 COFF 期间失败: 文件无效或损坏解决方案
- JPA的主键产生策略
- !important
- 适配iOS7之—UITableView和UISearchBar
- Kinect for Windows SDK开发入门(一):开发环境配置
- java String类
- C# Label显示多行文本及换行(WinForm/WebForm)
- 时间戳转换工具