介面卡模式:將乙個類的介面轉換成客戶希望的另外乙個介面。介面卡模式使得原本由於介面不相容而不能一起工作的那些類可以一起工作。
應用場景:
1、系統的資料和行為都正確,但是介面不符時,我們應該考慮介面卡,目的是使得介面匹配。介面卡模式主要是應用於希望服用一些現在的類,但是介面又於復用環境不一致的情況。比如對早起**功能復用上會很有實際價值。這是在設計後期使用介面卡的情況
不過對於介面不一致的情況,早期在公司內部就應該設計好,就應該有詳細的規範,比如類如何設計,如何命名。
2、在設計前期使用的情況。比如公司在設計系統的時候考慮使用第三方元件,而這個元件的介面與我們系統的元件介面又不相同,而我們沒有必要為了這個迎合元件的介面而改變自己的介面,在這種情況下考慮使用介面卡模式。
下面用**說明下,本例中英式插座不能直接用,插頭用介面卡,介面卡用英式插座
#include #include using namespace std;
// 中式插座
class ccnoutlet
; virtual void cnplug()
;};// 英式插座
class cenoutlet
};class ccnoutletadapter : public ccnoutlet
; virtual ~ccnoutletadapter() {};
virtual void cnplug()
private:
cenoutlet* m_penoutlet;
};int main()
參考
參考2
設計模式 八 介面卡模式
1 生活中的場景 轉接頭之類的 2 什麼是介面卡模式?3 模式中的角色 4 例項 類適配方式 被適配類 被適配的類 public class adaptee 目標介面 public inte ce target介面卡類 介面卡類 轉接器 類適配方式,但是類只能單繼承不利於擴充套件 public cl...
設計模式八 介面卡模式
將乙個類的介面變換成客戶端所期待的另一種介面,從而使原本因介面不匹配而無法在一起工作的兩個類能夠在一起工作。通俗的講,在不改變老系統的功能介面情況下,作向下相容。spring中以adapter結尾的都是。功能 對原來對賬號密碼登入方式,新增第三方登入。老介面 public class siginse...
學習C 設計模式(八)介面卡模式
using system using system.collections.generic using system.linq using system.text using system.threading.tasks namespace adapter public class orchard ...