設計模式之類對象結構型 — ADAPTER (適配器)模式

概述

適配器模式可以將一個類的接口轉換成客戶希望的另一個類的接口

效果

類適配器

  • 一個具體的Adapter(適配器)類對Adaptee(被適配者)和Target(目標)進行匹配
  • Adapter可以重定義Adaptee的部分行爲
  • 不需要額外的指針以間接得到adaptee

對象適配器

  • 允許Adapter與Adaptee及其子類一起工作。
  • 重定義Adaptee的行爲比較困難,需要生成他的子類纔可以重定義

結構

這裏寫圖片描述

示例代碼


class Adaptee
{
public:
    Adaptee();
    ~Adaptee();

    void func_a();
    void func_b();
protected:

private:
};


class Target
{
public:
    Target();
    virtual ~Target();

    virtual bool func_c(int a);

protected:

private:
};



/************************************************************************/
/* 類適配器*/
/************************************************************************/
class Adapter :public Target ,private Adaptee 
{
public:
    Adapter();
    ~Adapter();

    bool func_c(int a)
    {
        func_a();
        func_b();


        return true;
    }

protected:

private:
};

/************************************************************************/
/* 對象適配器                                                                     */
/************************************************************************/
class Adapter :public Target
{
public:
    Adapter(Adaptee *adaptee)
    {
        m_adaptee = adaptee;
    }
    ~Adapter();

    bool func_c(int a)
    {
        m_adaptee->func_a();
        m_adaptee->func_b();



        return true;
    }
protected:

private:
    Adaptee *m_adaptee;
};

我的個人網站 http://www.breeziness.cn/
我的CSDN http://blog.csdn.net/qq_33775402

轉載請註明出處 小風code www.breeziness.cn

發佈了78 篇原創文章 · 獲贊 75 · 訪問量 15萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章