设计模式之策略模式(Strategy)
来源:互联网 发布:mysql 数据库重命名 编辑:程序博客网 时间:2024/06/08 13:21
策略模式是指定义一系列的算法,把它们一个个封装起来,并且使它们可相互替换。使得算法可独立于使用它的客户而变化。也就是说这些算法所完成的功能一样,对外的接口一样,只是各自实现上存在差异。用策略模式来封装算法,效果比较好
#include <iostream>using namespace std;//抽象接口class Algorithm{public: virtual void replace() = 0;};//算法1class Algorithm1 : public Algorithm{public: void replace() { cout << "this is Algorithm1" << endl; }};//算法2class Algorithm2 : public Algorithm{public: void replace() { cout << "this is Algorithm2" << endl; }};//算法3class Algorithm3 : public Algorithm{public: void replace() { cout << "this is Algorithm3" << endl; }};enum AlgorithmFlag{ A1, A2, A3};//计算class Compute{public: Compute(enum AlgorithmFlag flag) { if(flag == A1) _algorithm = new Algorithm1; else if(flag == A2) _algorithm = new Algorithm2; else if(flag == A3) _algorithm = new Algorithm3; else _algorithm = NULL; } ~Compute() { if(_algorithm) delete _algorithm; } void replace() { _algorithm->replace(); }private: Algorithm *_algorithm;};int main(){ Compute compute(A1); compute.replace(); return 0;}
阅读全文
0 0
- 设计模式之Strategy(策略)
- 设计模式之Strategy(策略)
- 设计模式之Strategy(策略)
- 设计模式之Strategy(策略)
- 设计模式之Strategy(策略)
- 设计模式之Strategy(策略)
- 设计模式之Strategy(策略)
- 设计模式之Strategy(策略)
- 设计模式之Strategy(策略)
- 设计模式之Strategy(策略)
- 设计模式之Strategy(策略)
- 设计模式之Strategy(策略)
- 设计模式之Strategy(策略)
- 设计模式之Strategy模式(策略模式)
- 设计模式之strategy策略模式
- 设计模式(DesignPattern)之策略模式(Strategy)
- 设计模式之策略模式(Strategy)
- 设计模式之Strategy(策略模式)
- Android中传递对象的三种方法
- tomcat发布应用并配置域名
- springmvc配置Ehcache实现缓存管理
- myeclipse 无法正常添加server library
- vue结合vue-cli项目搭建
- 设计模式之策略模式(Strategy)
- Only a type can be imported. javax.persistence.Id resolves to a package
- Python实现二叉树及遍历方法
- Oracle DBLINK --跨库访问数据
- C指针
- mysql--12200数据库
- 用十年教会自己编程
- c++三种编码方式
- layer is not defined