設計模式攻略 結構型模式之Adapter模式

2021-06-05 12:47:03 字數 958 閱讀 7423

概要

adapter模式,中文名為介面卡模式,從字面意思來看不難理解,就是通過模組,介面的包裝和適配達到模組介面相容協作的目的。這算是乙個很簡單的模式,就算你從來沒看過設計模式,從未聽說過adapter模式,聽我後面的介紹後,也許你會很不屑的說,「早在我之前設計過的n個專案中,用過這種所謂的adapter模式n×n次了。」下面就讓我們來看看這種常見,常用又作用不小的設計模式吧。

目的

轉換原本不相容的介面,使不相容的模組間可以進行互動和協作。

例項

來看這樣乙個例子吧。比如在既有的繪圖系統中支援以下畫直線的介面,通過指定point型別的資料進行直線繪製。

class idraw ;
假設需要對直線繪製功能有新的需求而進行擴充套件,再假設這個功能的需求很複雜,單獨實現的成本很高。而現在正好發現有個第三方的繪相簿提供支援這種需求的api,可以直接整合到系統中來實現功能擴充套件,但是這個庫提供的介面形式跟既有介面不一致,而既有介面形式又是不可改變的,第三方庫提供的介面如下:

class thirdpartydraw ;
怎麼辦?包裝適配下,很簡單就能搞定,***!

class draw :public idraw 

private:

thirdpartydraw* mdrawline;

};

確實簡單吧,按照現有介面擴充套件,然後把第三方介面包裝到現有實現內就ok!

應用

實際開發中,模組介面間的互動不可能永遠都如熱戀中的情侶般默契加和諧,adapter模式是當它們出現衝突時解決矛盾的有效方法。特別是在引入第三方庫時,或多或少會對現有應用產生一些影響和衝突,更好地包裝適配介面會讓模組的整合更順利。記住它吧,這就是adapter模式。

設計模式攻略 結構型模式之Decorator模式

概要 又是一種比較常見也比較常用的模式。系統模組經常需要進行功能上的擴充套件,比如下面這種形式的結構,當需要擴充套件新function時,通常會通過繼承追加新類來實現功能的擴充套件。但是如果我們不是擴充套件乙個新功能的物件,而只是對 所有現有的每種功能類的處理進行擴充套件時,我們應該怎麼做?deco...

設計模式之結構型模式

結構型設計模式主要考慮的是 如何組合類和物件以獲得更大的結構。結構型模式分為兩種 結構型物件模式和結構型類模式 結構型類行為模式 採用繼承機制來組合介面或實現。乙個簡單的例子是採用多重繼承方法將兩個以上的類組合成乙個類,結果這個類包含了所有父類的性質。eg adapter模式 結構型物件行為模式 描...

設計模式之結構型模式

設計模式分為三大類 1 建立型模式,共五種 工廠方法模式 抽象工廠模式 單例模式 建造者模式 原型模式。2 結構型模式,共七種 介面卡模式 裝飾器模式 模式 外觀模式 橋接模式 組合模式 享元模式。3 行為型模式,共十一種 策略模式 模板方法模式 觀察者模式 迭代子模式 責任鏈模式 命令模式 備忘錄...