设计模式C++描述----15.策略(Strategy)模式
来源:互联网 发布:在线充值系统网站源码 编辑:程序博客网 时间:2024/06/11 19:55
一. 举例说明
以前做了一个程序,程序的功能是评价几种加密算法时间,程序的使用操作不怎么变,变的是选用各种算法。
结构如下:
Algorithm:抽象类,提供算法的公共接口。
RSA_Algorithm:具体的RSA算法。
DES_Algorithm:具体的DES算法。
BASE64_Algorithm:具体的Base64算法。
在使用过程中,我只需要对外公布Algorithm_Context这个类及接口即可。
代码实现:
//策略类class Algorithm {public:virtual void calculate() = 0; };//具体RSA算法class RSA_Algorithm : public Algorithm { public: void calculate() { cout<<"RSA algorithm..."<<endl; } }; //具体DES算法class DES_Algorithm : public Algorithm { public: void calculate() { cout<<"DES algorithm..."<<endl; } };//具体Base64算法class BASE64_Algorithm: public Algorithm { public:void calculate() { cout<<"Base64 algorithm..."<<endl; } }; //策略上下文class Algorithm_Context{private:Algorithm *m_ra;public:Algorithm_Context(Algorithm *ra) { m_ra = ra; }~Algorithm_Context() { delete m_ra; }void calculate() { m_ra->calculate(); }};//测试代码int main(){Algorithm_Context context(new RSA_Algorithm()); //使用具体算法context.calculate();return 0; }
一. 策略模式
定义:它定义了算法家族,分别封装起来,让它们之间可以互相替换,此算法的变化,不会影响到使用算法的客户。
- 设计模式C++描述----15.策略(Strategy)模式
- 设计模式C++描述----15.策略(Strategy)模式
- 设计模式C++(Strategy策略模式)
- 设计模式C++(Strategy策略模式)
- 设计模式----Strategy(策略)
- 设计模式--Strategy(策略)
- Strategy(策略)设计模式
- [设计模式]策略模式,strategy
- 设计模式--策略模式(Strategy)
- [设计模式]Strategy策略模式
- 设计模式 -- 策略模式Strategy
- [设计模式]-策略模式(Strategy)
- 设计模式--策略模式Strategy
- 设计模式: 策略(strategy)模式
- 设计模式 策略模式Strategy
- [设计模式] 策略模式Strategy
- 设计模式:Strategy 策略模式
- 设计模式:策略模式-strategy
- 淘宝的数据库拆分(TDDL)
- hdu 1255 覆盖的面积(矩形面积并,多次覆盖)
- MTK串口通信调试
- 【转】crosstool These critical programs are missing or too old: as ld 问题
- 黑马程序员 构造方法
- 设计模式C++描述----15.策略(Strategy)模式
- http://zhidao.baidu.com/question/54918772.html
- linux 中HZ 、Tick、 Jiffies的关系。
- Jmete中的Java Reuest的使用方式
- 关于浮躁
- Linux 函数--fstat/stat/lstat系统调用
- Linux内核中的jiffies
- 分区表损坏后的重建
- 基于AMF协议的Flex应用程序