GOF 六 介面卡模式 推薦

2021-09-26 11:09:12 字數 3346 閱讀 6876

介面卡模式是將兩個不相容的介面連線到一起,所以屬於結構型。比如:家用電器使用的是直流電,那麼220v的交流電如何使用呢?這時就需要電源介面卡來解決介面不相容的問題;除此之外,如果乙個不會英語的人想和外國人交流,就需要乙個翻譯官,而翻譯官就將兩個無法交流的人聯絡到了一起。

介面卡模式可以分為4種型別:類介面卡模式物件介面卡模式、單介面介面卡模式(預設介面卡模式)和雙向介面卡模式。由於後兩種複雜且不常用,這裡省略對其的介紹。

uml的相關知識,可以訪問我的另外一篇博文

taget:想要的目標結果

/**

* @description:

* 作為traget,適配的結果

* 即:將中文轉為英文,英文作為中文轉換的最終結果

*/public

inte***ce

englishlanguage

寫乙個他的實現方法(可以省略,這裡用於對比測試結果)

public

class

englishpeople

implements

englishlanguage

}

adaptee老的介面(要被適配的類或方法)

/**

* @description:

* adaptee 被適配的物件

* 即:老的介面,需要被轉換的類或方法

*/public

class

chineselanguage

}

adapter(翻譯官) 提供轉換功能。

類適配模式:繼承老的介面(被轉換的介面adaptee),實現目標介面(target)

/**

* @description:

* adapter 轉換方法

* 類適配模式: 繼承老的介面(被轉換的介面adaptee),實現目標介面(target)

*/public

class

translationadapter

extends

chineselanguage

implements

englishlanguage

}

當寫完翻譯官(adapter【介面卡】)之後回頭看老介面(adaptee【被適配的】),截圖展示(注意畫橫線的小標識)

【這裡的 i 指的是介面,並且指向目標介面(target)】

並且目標介面(target)有了兩個實現方法(因為有兩個類實現了它)

測試**:

public

static

void

main

(string[

] args)

結果展示:

english people said something! 普通類

翻譯官登場!閒人避讓!

translationadapter 開始呼叫父類的talk方法:

chinese people said something! 被適配的類

總結一下類介面卡模式:適配類【翻譯官】需要繼承老介面,實現目標介面老介面(adaptee【chineselanguage】)、目標介面(target【englishlanguage】)都與上面一致,就翻譯官(adapter)發生了改變。

adapter(翻譯官)**:

物件適配模式:關聯老的介面(被轉換的介面adaptee)【將老介面作為屬性】,實現目標介面(target)

/**

* @description:

* adapter 轉換方法

* 物件適配模式:

* 關聯老的介面(被轉換的介面adaptee)【將老介面作為屬性】

* 實現目標介面(target)

*/public

class

translationadapter

implements

englishlanguage

@override

public string talk()

}

當寫完翻譯官(adapter【介面卡】)之後回頭看老介面(adaptee【被適配的】)

發現沒有任何標識了(因為作為了翻譯官的屬性)

並且目標介面(target)還是兩個實現方法(因為有兩個類實現了它)

測試**:

public

static

void

main

(string[

] args)

結果展示:

english people said something! 普通類

翻譯官登場!閒人避讓!

translationadapter 開始呼叫父類的talk方法:

chinese people said something! 被適配的類

總結一下物件介面卡模式:老介面成為適配類【翻譯官】的屬性,並且適配類【翻譯官】需要實現目標介面介面卡模式原理很簡單,但是使用方式千變萬化,通常會結合其他模式一同使用。

**已經上傳到git:訪問

六 介面卡模式

介面卡模式將某個類的介面轉換成客戶端期望的另乙個介面表示,目的是消除由於介面不匹配所造成的類的相容性問題。主要分為三類 類的介面卡模式 物件的介面卡模式 介面的介面卡模式。首先,我們來看看類的介面卡模式。物件的介面卡模式 基本思路和類的介面卡模式相同,只是將adapter類作修改,這次不繼承sour...

設計模式(六) 介面卡模式

優點 通過引入乙個介面卡adapter來重用現有的不相容的舊類adeptee,而無需修改舊類原有結構。增加了舊類的復用性 介面卡的靈活性和擴充套件性都非常好 缺點 一次最多只能適配乙個舊類,不能同時適配多個舊類。適用範圍 需要有舊類,而舊類的介面不符合新系統的需要,甚至舊類都沒有源 客戶端 play...

介面卡模式(類介面卡 物件介面卡)

做個筆記 引用 public inte ce usb public inte ce psp public class usber implements usb 類介面卡 psp適用usb介面 public class usbadapter extends usber implements psp 物...