重學設計模式 Adapter模式

2021-06-06 03:31:02 字數 823 閱讀 4106

adapter就是乙個目標不能直接拿來使用,需要轉換。如電源介面卡…

《設計模式》一書中對adapter模式的意圖是這樣敘述的:

將乙個類的介面轉換成客戶希望的另外乙個介面。adapter模式使原本由於介面不相容而不能一起工作的類可以一起工作。

使控制範圍之外的乙個原有物件與某個介面匹配 問題

系統的資料和行為都正確,但介面不符。通常用於必須從抽象類派生時。

解決方案

adapter模式提供了具有所需介面的包裝類。

參與者與協作者

adapter改變了adaptee的介面,是adaptee與adapter的基類target匹配。這樣client就可以使用adaptee了,好像它是target型別。效果

adapter模式使原有物件能夠適應新的類結構,不受其介面的限制。實現

1、物件adapter模式:將原有類包含在另乙個類中。讓包含類與需要的介面匹配,呼叫被包含類的方法。

2、類adapter模式:通過多重繼承實現。建立乙個新類,該類同時從兩個類繼承:從定義其介面的抽象類共有繼承;從訪問其實現的原有類私有繼承。

facade模式

adapter模式

是否存在既有的類? 是

是是否必須按某個介面設計? 否

是物件需要多型行為嗎? 否

可能需要更簡單的介面嗎? 是

設計模式 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模式 依賴於乙個物件 適配物件 包含另乙個物件 被適配物...