策略模式-应用代码示例

来源:互联网 发布:js中的数组定义 编辑:程序博客网 时间:2024/04/29 18:36

设计思想非常好,充分体现了策略模式的特点

以下代码修改后转载

#include <stdio.h>#include <iostream>using namespace std;class ReplaceAlgorithm{public:virtual void Replace() = 0;};class LRU_ReplaceAlgorithm:public ReplaceAlgorithm{public:void Replace(){cout<<"LRU_ReplaceAlgorithm is used.."<<endl;}};class FIFO_ReplaceAlgorithm: public ReplaceAlgorithm{public:void Replace(){cout<<"FIFO_ReplaceAlgorithm is used.."<<endl;}};class Random_ReplaceAlgorithm: public ReplaceAlgorithm{public:void Replace(){cout<<"Random_ReplaceAlgorithm is used..."<<endl;}};enum RA{LRU,FIFO,RANDOM};class Cache{private:ReplaceAlgorithm *m_ra;public:Cache(enum RA ra){if( ra == LRU){m_ra = new LRU_ReplaceAlgorithm();}else if( ra == FIFO){m_ra = new FIFO_ReplaceAlgorithm();}else if(ra == RANDOM){m_ra = new Random_ReplaceAlgorithm();}else{m_ra = NULL;}}~Cache(){delete m_ra;}void Replace(){m_ra->Replace();}};int main(){enum RA test = LRU;Cache cache1(test);cache1.Replace();return 0;}



原创粉丝点击