結構型模式是用來設計程式的結構的。結構型模式就像搭積木,將不同的類結合在一起形成契合的結構。包括以下幾種:
下面我們介紹第一種模式:介面卡模式。
介面卡模式(adapter)的定義如下:將乙個類的介面轉換成客戶希望的另外乙個介面,使得原本由於介面不相容而不能一起工作的那些類能一起工作。該模式的主要優點如下:
其缺點是:
介面卡模式(adapter)通常適用於以下場景:
介面卡模式分為類介面卡模式和物件介面卡模式兩種,前者類之間的耦合度比後者高,且要求程式設計師了解現有元件庫中的相關元件的內部結構,所以應用相對較少些。
介面卡模式(adapter)包含以下主要角色。
類介面卡模式的結構圖如下圖所示:
類介面卡模式的**如下:
#include using namespace std;
// 目標類
class target
};// 適配者類
class adaptee
};// 類介面卡類
class classadapter : public target, private adaptee
};int main()
輸出如下:
類介面卡模式測試:
適配者中的業務**被呼叫!
可以看出原本 target 類無法呼叫 adaptee 類的業務**(specificrequest),通過類介面卡類 classadapter 就可以呼叫了。
物件介面卡模式的結構圖如下圖所示:
物件介面卡模式的**如下:
#include using namespace std;
// 目標類
class target
};// 適配者類
class adaptee
};// 物件介面卡類
class objectadapter : public target
void request()
private:
adaptee* m_ade;
};int main()
輸出如下:
物件介面卡模式測試:
適配者中的業務**被呼叫!
參考:介面卡模式(adapter模式)詳解
c++介面卡模式
菜鳥教程 - 介面卡模式
設計模式 結構型模式 介面卡模式
抽象成績操作類 目標介面 inte ce scoreoperation 快速排序類 適配者 class quicksort public void sort int array,int p,int r public intpartition int a,int p,int r swap a,j 1,...
設計模式 結構型模式 介面卡模式
已有介面a和b,在不修改a b的情況下,a要為b所用,這個時候需要乙個中間人來承擔將a的介面封裝成為b可以使用的介面,這裡的 中間人 就是介面卡 adapter 轉換介面 coyoteadapter將tomcat 的connector和container進行解耦,connector和containe...
設計模式 結構型模式 介面卡模式
將乙個類的介面變換成客戶端所期待的另一種介面,從而使原本因介面不匹配而無法在一起工作的兩個類能夠在一起工作。角色說明 首先來說下物件介面卡模式的實現方式,就以電壓轉換為例子。現在我們需要定義乙個220v轉換成5v的介面 inte ce adapter被適配角色,一般是已存在的類,需要適配新的介面。生...