美文网首页
适配器模式

适配器模式

作者: StevenHD | 来源:发表于2020-11-30 11:07 被阅读0次

    一、适配器模式

    图解

    二、实例代码

    披着羊皮的狼

    #include <iostream>
    
    using namespace std;
    
    class Goat
    {
    public:
        virtual void miemie() = 0;
    };
    
    class NormalGoat : public Goat
    {
    public:
        void miemie()
        {
            cout << "I am a real goat" << endl;
        }
    };
    
    class Wolf
    {
    public:
        void howl()
        {
            cout << "I am a real wolf" << endl;
        }
    };
    
    class AdapterGoat : public Goat
    {
    public:
        AdapterGoat(Wolf * w) : _w(w) {}
    
        void miemie()
        {
            _w->howl();
        }
    
    protected:
        Wolf *_w;
    };
    
    int main()
    {
        NormalGoat ng;
        ng.miemie();
    
        Wolf wf;
        wf.howl();
    
        AdapterGoat ag(&wf);
        ag.miemie();
    
        return 0;
    }
    

    三、STL中的适配器模式

    deque就是适配器,使用deque实现了stack和queue。


    图解
    #include <iostream>
    
    using namespace std;
    
    // 适配器容器——stack, queue
    
    class MyDeque
    {
    public:
        void push_back();
        void push_front();
        void pop_bac();
        void pop_front();
    };
    
    class MyStack
    {
    public:
        void push();
        void pop();
    
    protected:
        MyDeque md;
    };
    
    class MyQueue
    {
    public:
        void enQueue()
        {
            md.push_back();
        }
    
        void deQueue()
        {
            md.pop_front();
        }
    
    protected:
        MyDeque md;
    };
    
    int main()
    {
    
        return 0;
    }
    

    相关文章

      网友评论

          本文标题:适配器模式

          本文链接:https://www.haomeiwen.com/subject/glpwiktx.html