一、模式定義
將乙個類的介面轉換成客戶希望的另外乙個介面。adapter 模式使得原本由於介面不相容而不能一起工作的那些類可以一起工作。
二、所體現出的設計原則
我覺得這裡體現了2種設計原則:首先是迪公尺特法則「不合陌生人說話」,類之間的關係盡量少;然後是部分體現了「開閉法則」,增加介面卡使得原有系統的介面不必要更改。
三、uml圖示
如圖所示,一般來說介面卡類和被適配物件之間是聚合的關係,也就是物件介面卡。很少對類介面卡,因為考慮到「組合優於繼承」。
四、應用場景
在新,老系統的相容中,特別容易用到介面卡模式,因為老系統的介面往往和新系統的介面不一樣。或者用乙個新的,相同功能的模組替代舊模組時,也容易遇到這種情況。
五、注意事項
介面卡和裝飾者模式之間的區別是:介面卡一定會轉換介面,但一般不增加新的功能;而裝飾者一般都要增加新的屬性,介面,功能。
介面卡和**模式之間的區別是:介面卡模式中一定會轉換介面;但**模式是不改變介面,但對其功能進行控制。
六、舉例說明
舉個例子,為了實現xml的解析,舊系統中採用了第三方庫a解析xml;現在由於新的功能需求,需要用功能更加強大的第三方庫b替換庫a,但2種庫的介面是不一樣的。此時就需要增加介面卡類,來適配庫b的介面。
七、**示例
沒找到現成的,不過也很簡單。
設計模式之介面卡模式(類介面卡模式)
介面卡模式,即定義乙個包裝類,用於包裝不相容介面的物件 包裝類 介面卡adapter 被包裝物件 適配者adaptee 被適配的類 把乙個類的介面變換成客戶端所期待的另一種介面,從而使原本介面不匹配而無法一起工作的兩個類能夠在一起工作。介面卡模式的形式分為 類的介面卡模式和物件的介面卡模式 模式原理...
設計模式之 介面卡模式
1,介面卡模式把乙個類的介面變換成客戶端所期待的另一種介面,從而使原本因介面不匹配而無法一起工作的兩個類能夠在一起工作 2,介面卡模式有兩種 1 類的介面卡模式 介面卡類繼承源類 這樣介面卡類就繼承了源類有的方法 並實現目標介面,實現在源類中沒有而在介面中有的方法,從而實現介面卡類有目標介面的所有方...
設計模式之介面卡模式
介面卡模式定義 將乙個類的介面,轉換成客戶期望的另乙個介面。介面卡讓原本介面不相容的類可以合作無間。簡單定義 封裝物件,並提供不同的介面。簡單例子 鴨子介面 package headfirst.adapter.ducks public inte ce duck 具體鴨子 package headfi...