設計模式 Adapater模式

2021-07-11 11:16:34 字數 1411 閱讀 7991

結構型模式之:adapater模式

adapater譯為轉接器,顧名思義,起到乙個介面轉接的作用。

實際上在軟體系統設計和開發中,總會遇到這樣的問題:a應用程式中已經設計好的介面與b提供的介面不一致,但又不得不用。為了使得這兩者能夠在一起工作,adapater模式提供了乙個將乙個類(第三方b)的介面轉化為(使用者a)希望的介面。

adapater模式有兩種類別,即類模式和物件模式。區別如下:

1· 類模式的 adapater 採用繼承的方式復用 adapatee 的介面;

2· 物件模式的 adapater 採用組合的方式實現 adapatee 的復用。

demo:

class target

;class adapatee

;//類模式的adapater,通過繼承的方式復用adapatee的介面

class adapater : public target, private adapatee

;--------------------

//物件模式的adapater,通過組合的方式實現adapatee介面的復用

class adapater : public target

;

target::target()

target::~target()

void target::request()

adapatee::adapatee()

adapatee::~adapatee()

void adapatee::specificrequest()

//類模式的adapater

adapater::adapater()

//物件模式的adapater

adapater::adapater(adapatee* ade)

adapater::~adapater()

//類模式

void adapater::request()

//物件模式

void adapater::request()

adapater::~adapater()

在使用時候

adapatee *ade = new adapatee;

//類模式

target *adt = new adapater();

//物件模式

target *adt = new adapter(ade);

adt->request();     

//最終列印 「adapatee::specificrequest」

// new adapater 例項化 target物件 adt,

//該物件的方法request的實現則是繼承自adapatee

設計模式 設計模式

物件導向程式設計 oop 的基本概念有 封裝,抽象,繼承,多型等,如何開發出可復用的物件導向軟體一直困擾著軟體開發人員。可復用的物件導向技術包括類的繼承,物件的組合和引數化型別 generic gof的巨著 設計模式 總結出可復用的物件導向的23個設計模式,並且歸類成 建立型模式,結構型模式和行為型...

設計模式 設計模式之工廠模式

工廠方法模式 建立模式 使用場景?作用?形態?場景 大量類似的實體類 要建立的實體類都是同一本質的東西 披薩 有部分類似功能 準備 烘烤 切法 實現方式不一樣 準備的材料不同 烘烤時間不同 切法不同 將繁瑣複雜的建立類的過程聚集在一起,有序清晰 把具體例項化的過程從客戶 中抽離 作用 1 將建立物件...

設計模式 命令設計模式

一句話總結 命令設計模式的實質是將命令定義,命令的執行分離開,從而提公升了系統的解藕性 結構 命令的抽象command 命令的具體實現concretecommand 命令處理者抽象ireceiver 命令處理者的具體實現concretereceiver 命令的呼叫者invoker 客戶端client...