返回顶部

c++适配器

真实生活举例

 

适配器分类

对象适配器(非继承)

适配器实现了其中一个对象的接口,并对另一个对象进行封装。所有流行的编程语言都可以实现适配器。

#include <iostream>


// Target 客户期待的接口,可以是具体类,抽象类,接口类
class Target
{
public:
    virtual void request()
    {
        std::cout << "普通请求" << std::endl;
    }
};

// 需要适配的类
class Adaptee
{
public:
    void specialRequest()
    {
        std::cout << "特殊请求" << std::endl;
    }
};

class Adapter:public Target
{
public:
     void request()
    {
        adaptee->specialRequest();
    }
private:
    Adaptee* adaptee = new Adaptee;
};

int main()
{
    Target * target = new Adapter();
    target->request();
}

 

 

 

 

类适配器(继承)

适配器同时继承两个对象的接口。请注意, 这种方式仅能在支持多重继承的编程语言中实现,例如 C++

#include <iostream>


// Target 客户期待的接口,可以是具体类,抽象类,接口类
class Target
{
public:
    virtual void request()
    {
        std::cout << "普通请求" << std::endl;
    }
};

// 需要适配的类
class Adaptee
{
public:
    void specialRequest()
    {
        std::cout << "特殊请求" << std::endl;
    }
};

class Adapter :public Target,private Adaptee
{
public:
    void request()
    {
        specialRequest();
    }
};

int main()
{
    Target * target = new Adapter();
    target->request();
}

 

 

 

 

posted @ 2022-05-31 13:43  Zcb0812  阅读(173)  评论(0)    收藏  举报