zoukankan      html  css  js  c++  java
  • 策略模式

    策略模式是指定义一系列的算法,把它们一个个封装起来,并且使它们可相互替换。
    本模式使得算法可独立于使用它的客户而变化。
    也就是说这些算法所完成的功能一样,对外的接口一样,只是各自实现上存在差异。
    用策略模式来封装算法,效果比较好。
    class STReplace
    {
    public:
        virtual void Replace() = 0;
    };
    //三种具体的替换算法
    class LRU_Replace : public STReplace
    {
    public:
        void Replace() { cout<<"LRU"<<endl; }
    };
    
    class FIFO_Replace : public STReplace
    {
    public:
        void Replace() { cout<<"FIFO"<<endl; }
    };
    
    class Random_Replace: public STReplace
    {
    public:
        void Replace() { cout<<"Random"<<endl; }
    };
    //Cache需要用到替换算法
    enum RA {LRU, FIFO, RANDOM}; //标签
    class Cache
    {
    private:
        STReplace *m_ST;
    public:
        Cache(enum RA ra) 
        { 
            if(ra == LRU)
                m_ST = new LRU_Replace();
            else if(ra == FIFO)
                m_ST = new FIFO_Replace();
            else if(ra == RANDOM)
                m_ST = new Random_Replace();
            else 
                m_ST = NULL;
        }
        ~Cache() { delete m_ST; }
        void Replace() { m_ST->Replace(); }
    };
    int main()
    {
        Cache cache(LRU); //指定标签即可
        cache.Replace();
        return 0;
    }
  • 相关阅读:
    性能测试流程
    登录时获取验证码
    xpath在谷歌下的安装教程
    浏览器驱动安装
    Python3.3+Selenium3.0框架实战Web自动化测试实战
    selenium+python+unittest实现自动化测试(入门篇)
    python 3 的环境搭建Robot Framework
    canvas
    学习webpack
    开始学习typescript
  • 原文地址:https://www.cnblogs.com/osbreak/p/10111410.html
Copyright © 2011-2022 走看看