美文网首页
设计模式-结构模式-适配器模式

设计模式-结构模式-适配器模式

作者: 阿棍儿_Leon | 来源:发表于2020-04-28 20:04 被阅读0次

    常见的适配器模式的例子就是Wrapper。在这个模式中有3个对象,一个是Target,是适配器的使用者,它会向适配器发起某种使用请求;一个是Adaptee,Target最终要使用的就是Adaptee;两者中间的Wrapper就是适配器Adaptor,它负责转换请求。

    以下代码定义了目标的抽象类。

    #include <iostream>
    
    using namespace std;
    
    class Target
    {
    public:
        virtual ~Target(){}
        virtual void Request(void)=0;
    };
    

    以下代码定义了Adaptee。

    class Adeptee
    {
    public:
        void SpecialRequest(void)
        {
            cout<<__PRETTY_FUNCTION__<<endl;
        }
    };
    

    以下代码定义了适配器,它也就成了实际的Target。

    class Adaptor:public Target
    {
    private:
        Adeptee* m_pAdeptee;
    public:
        Adaptor(Adeptee* m_pSocket):m_pAdeptee(m_pSocket)
        {
            if (m_pSocket == nullptr)
            {
                m_pAdeptee = new Adeptee();
            }
        }
        void Request(void)
        {
            cout<<__PRETTY_FUNCTION__<<"->";
            m_pAdeptee->SpecialRequest();
        }
    };
    

    以下代码使用适配器发起了一次请求。

    int main(void)
    {
        Target* T = new Adaptor(new Adeptee());
        T->Request();
        delete T;
        return 0;
    }
    

    输出

    virtual void Adaptor::Request()->void Adeptee::SpecialRequest()
    

    相关文章

      网友评论

          本文标题:设计模式-结构模式-适配器模式

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