Adapter 适配器

2019-03-20  本文已影响0人  szn好色仙人

动机

定义

要点

示例

#include <cstdio>


//遗留接口(老接口)
class COld
{
public:
    virtual void DealPart0(int nValue) = 0;
    virtual void DealPart1(const char* pStrC) = 0;
};

//旧接口的具体实现类
class COldChild : public COld
{
public:
    virtual void DealPart0(int nValue) { printf("%d\n", nValue); }
    virtual void DealPart1(const char* pStrC) { printf("%s\n", pStrC); }
};

//目标接口(新接口)
class CNew
{
public:
    virtual ~CNew(){}
    virtual void Deal() = 0;
};

//适配器
class CAdapter : public CNew
{
protected:
    COld* pOld_;

public:
    CAdapter(COld* pOld) { this->pOld_ = pOld; }

    //实现了旧接口转为新接口
    void Deal()
    {
        pOld_->DealPart0(1);
        pOld_->DealPart1("Hello");
    }
};

int main()
{
    COldChild OldChild;
    CNew* pNew = new CAdapter(&OldChild);
    pNew->Deal();
    /*
    1
    Hello
    */

    return 0;
}

例子

https://www.bilibili.com/video/av24176315/?p=16

上一篇 下一篇

猜你喜欢

热点阅读