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

2021-10-24 23:38:51 字數 1051 閱讀 7253

介面卡模式(adapter pattern)是一種結構型模型,會將一種介面轉換為另一種需要的介面,以便使用。介面卡模式有兩種,一是類模式介面卡;另一種是物件模式介面卡。

類模式介面卡:

物件模式介面卡:

優點:1. 遮蔽具體實現的方法,實現了依賴倒轉;2.把不方便使用的介面轉換為統一介面,方便使用。

class target ; // target

class adaptee; //adaptee

// 類介面卡

class adapterclass: public target, private adaptee; // adapterclass

// 物件介面卡

class adapterobject: public target; // adapterobject

std::string target::get_name()

std::string adaptee::get_person_name()

adapterclass::adapterclass(std::string name)

: name_(std::move(name))

std::string adapterclass::get_name()

adapterobject::adapterobject(std::shared_ptradaptee,

std::string &name)

: adaptee_(std::move(adaptee)), name_(name)

std::string adapterobject::get_name()

int main()

設計模式之六 介面卡模式

結構型模式 介面卡模式是將乙個類的介面轉換成使用者所期待的目標介面,使得原本因介面不匹配無法再一起工作的兩個類一起工作。類介面卡模式,簡單來說,就是適配的類的api轉換成為目標介面的api。這種介面卡模式下,介面卡繼承自已實現的類 一般多重繼承 一句話描述 adapter類,通過繼承 adaptee...

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

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

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

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