結構型——介面卡模式adapter
定義:將乙個類的介面轉換成客戶希望的另外乙個介面。adapter模式使得原本由於介面不相容而不能一起工作的哪些類可以一起工作。
介面卡型別:類介面卡模式和物件介面卡模式。這裡主要講解物件介面卡模式
舉個栗子
在多元化的發展下,我們的語言也是多種多樣,當我們和外國人交流時互相都聽不懂該怎麼辦呢?為了順應時代的發展這時候就了翻譯,大家就可以愉快的交流了,在設計模式書中講到姚明去nba打球和隊友交流用到翻譯的,這裡我們還用此例來說。
adeptee(被適配類)foreigcenter
adepter(介面卡)player
target(適配類)translator
abstract class player
//進攻防守的方法
public abstract void attact();
public abstract void defenst();
}
class translator:player
//翻譯者將「attact」翻譯為「進攻」告訴外籍中鋒
public override void attact()
public override void defenst()
}
客戶端**:姚明需要介面卡告訴自己要做什麼,這裡的介面代表方法或方法的集合。(客戶端**可以統一呼叫統一介面,這樣更簡單、更直接、更緊湊。)
class program
}
使用範圍:系統的資料和行為都正確,但介面不符合時,我們應該考慮用介面卡,目的是使控制範圍之外的乙個原有物件與某個介面匹配。介面卡模式主要應用於希望復用一些現存的類,但是介面又與復用環境要求不一致的情況。兩個類做相同或相似的事情,但是具有不同的介面時用介面卡模式
優點:增加了類的復用性,在不修改源**的基礎上來復用現有類,符合「開閉原則」
缺點:使重定義adaptee行為困難,需要生成adaptee的子類並且使用adapter引用這個子類而不是引用adaptee
java設計模式6 介面卡模式(Adapter)
我們接著討論設計模式,上篇文章我講完了5種建立型模式,這章開始,我將講下7種結構型模式 介面卡模式 裝飾模式 模式 外觀模式 橋接模式 組合模式 享元模式。其中物件的介面卡模式是各種模式的起源,我們看下面的圖 介面卡模式將某個類的介面轉換成客戶端期望的另乙個介面表示,目的是消除由於介面不匹配所造成的...
Java設計模式五 介面卡模式 Adapter
將一類的介面轉換成客戶希望的另外乙個介面,adapter模式使得原本由於介面不相容而不能一起工作那些類可以一起工作。適用情況 使用的前提是 介面中規定了所有要實現的方法 但乙個要實現此介面的具體類,只用到了其中的幾個方法,而其它的方法都是沒有用的。實現方法 用乙個抽象類實現已有的介面,並實現介面中所...
設計模式 介面卡模式 類介面卡 物件介面卡
乙個小例子,便於理解,上 這是我們造的。現在想用這個方法。public class adaptee 類介面卡。對我們想要的方法封裝一下,target就能像之前一樣,呼叫request方法即可。public class adapter1 extends adaptee implements targe...