介面卡模式(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...