介面卡模式(Adapt) 設計模式(六)

2021-07-22 16:53:34 字數 1052 閱讀 7399

作用:

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

解析:

adapt 模式其實就是把完成同樣的乙個功能但是介面不能相容的類橋接在一起使之可以在一起工作,這個模式使得復用舊的介面成為可能.

實現:

adapt 模式有兩種實現辦法,一種是採用繼承原有介面類的方法,一種是採用組合原有介面類的方法

接下來看一下實現吧;

1、採用繼承原有介面類的方法:

#include

using

namespace

std;

//需要被adapt的類

class target

virtual ~target(){}

virtual

void request()

~adaptee(){}

void specificrequest()

~adapter(){}

void request()

};int main()

2、採用組合原有介面類方法

#include

using namespace std;

//需要被adapt的類

介面卡模式Adapt

例子 牆上的插座為三孔介面,但是很多家電都是雙孔標準,這個時候就需要乙個介面卡,讓雙孔的家電通過介面卡後也可以接入三孔介面的插座 兩種介面卡 物件介面卡 三孔插座 雙孔插座 使用雙孔插座的電視 物件介面卡 author wjm date 2020 6 16 17 10 public class tv...

設計模式(六) 介面卡模式

優點 通過引入乙個介面卡adapter來重用現有的不相容的舊類adeptee,而無需修改舊類原有結構。增加了舊類的復用性 介面卡的靈活性和擴充套件性都非常好 缺點 一次最多只能適配乙個舊類,不能同時適配多個舊類。適用範圍 需要有舊類,而舊類的介面不符合新系統的需要,甚至舊類都沒有源 客戶端 play...

C 設計模式(六)介面卡模式

在引入不可修改的第三方類庫,並且需要適配原有的介面時,就需要使用適配配器模式。實現要素 現有介面 ihelper 需要適配的介面,不可修改 public inte ce ihelper 介面實現 mysql public class mysqlhelper ihelper public void d...