設計模式 Adapter

2021-10-14 18:21:22 字數 1338 閱讀 3849

中文名:介面卡模式

gof中的描述:將乙個類的介面轉換成客戶希望的另乙個介面。adapter模式使得原本由於介面不相容而不能一起工作的那些類可以一起工作。

描述的解釋:兩個不介面不同但功能相似的產品,轉換為一種介面的形式。

使其使用方式相似

改造的成本可能會很高,改造前需評估是否確實需要適配

適配分為兩種,一種是類介面卡,利用繼承的技術;另一種是物件介面卡,使用組合的技術。

target類:目標介面

adaptee類:帶適配的類

adapter類:將adaptee類適配後的類

結構中,shape為target類,textview是待適配的類,textshape是適配後的類。適配後呼叫方式與shape類非常接近。

// structuremode_adapter.cpp : 此檔案包含 "main" 函式。程式執行將在此處開始並結束。

//#include struct coord

;struct point

};class manipulator {};

class shape

virtual void boundingbox(point& bottomleft, point& topright)

virtual manipulator* createmanipulator() const

};class textview

void getorigin(coord& x, coord& y) const

void getextent(coord& width, coord& height) const

virtual bool isempty() const

};// adapter

class textshape : public shape, private textview

virtual void boundingbox(point& bottomleft, point& topright)

virtual bool isempty() const

virtual manipulator* createmanipulator() const

private:

};int main()

橋接模式

裝飾器模式

1. 《設計模式:可復用物件導向軟體的基礎》 gof

設計模式 Adapter

adapter設計模式本身並沒有什麼特別,直觀地說就是介面封裝,在使用到第三方庫時我們常常用到,第三方庫提供的介面過於全面,引數過多,在我們實際應用中可能不會用到,通過進一步封裝,提供很好的實際介面。class target class adapter class adaptee 基本上就是三個類協...

設計模式 Adapter

類adapter include using namespace std class cadaptee virtual cadaptee public void func1 virtual ctarget public virtual void func 0 class cadapter publi...

設計模式 Adapter

意圖 使控制範圍之外的乙個原有物件與某個介面匹配。問題 系統的資料和行為都正確,但介面不符。通常用於必須從抽象類派生時。實現 將原有類包含在另一類中。讓包含類與需要的介面匹配,呼叫被包容類的方法。adapter模式有兩種型別 物件adapter模式 依賴於乙個物件 適配物件 包含另乙個物件 被適配物...