結構型模式(structural pattern)描述如何將類或者物件結合在一起形成更大的結構,就像搭積木,可以通過簡單積木的組合形成複雜的、功能更為強大的結構。
結構型模式可以分為類結構型模式和物件結構型模式:
根據「合成復用原則」,在系統中盡量使用關聯關係來替代繼承關係,因此大部分結構型模式都是物件結構型模式。一共有以下幾種模式:
物件介面卡
類介面卡
類介面卡有以下特點:
物件介面卡有以下特點:
由於物件介面卡的耦合度比較低,所以在很多的書中都建議使用物件介面卡。
類介面卡
#include using namespace std;
// targets
class target
};// adaptee
class adaptee
};// adapter
class adapter : public target, adaptee
};// client
int main()
物件介面卡
#include using namespace std;
class target
virtual ~target(){}
virtual void request()
};class adaptee
};class adapter : public target
~adapter()
}void request()
private:
adaptee *m_adaptee;
};int main()
類介面卡模式還具有如下優點:物件介面卡模式還具有如下優點:類介面卡模式的缺點如下:物件介面卡模式的缺點如下: 介面卡模式(類介面卡 物件介面卡)
做個筆記 引用 public inte ce usb public inte ce psp public class usber implements usb 類介面卡 psp適用usb介面 public class usbadapter extends usber implements psp 物...
介面卡模式 預設介面卡,類介面卡,物件介面卡
模式思想 改變乙個類的對外介面 增加或減少 以滿足不同外部呼叫者的需求 角色成員 目標介面 target 客戶所期待的介面。目標可以是具體的或抽象的類,也可以是介面。需要適配的類 adaptee 需要適配的類或適配者類。介面卡 adapter 通過包裝乙個需要適配的物件,把原介面轉換成目標介面。適配...
設計模式 介面卡模式 類介面卡 物件介面卡
乙個小例子,便於理解,上 這是我們造的。現在想用這個方法。public class adaptee 類介面卡。對我們想要的方法封裝一下,target就能像之前一樣,呼叫request方法即可。public class adapter1 extends adaptee implements targe...