結構型模式之: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...