設計模式之介面卡模式

2021-07-31 20:32:47 字數 1412 閱讀 8905

前面的幾個小節中,我們學習了設計模式中的構建形的設計模式,包括了單例模式、工廠模式、建造者模式以及原型模式,接下來的幾個小節中,我們將學習設計模式的另外乙個部分,結構型別的設計模式,本小節主要學習介面卡模式

說到介面卡(注意,不是介面卡模式),相信大家應該不陌生吧,生活中我們經常需要用到介面卡,比如說目前比較熱門的安卓充電線的接頭,之前主要一直都是micro type b型別的介面,而現在主要的是type-c介面,當我們只有micro type b型別的充電線,但是手機的介面是type-c,這個時候我們可以選擇購買一根type-c介面的充電線,也可以選擇購買乙個micro type b 轉type-c的介面卡,然後我們的micro type b充電線就可以給type-c介面的手機充電了,這個其實就可以理解為介面卡模式的應用了,當然,這裡我們所指的介面卡模式主要應用在軟體開發領域。

這裡,我們按照前面介紹的充電線介面模型來編寫**,具體看下介面卡模式是怎麼樣一回事以及介面卡模式是怎麼起作用的

這裡我們需要乙個microtypeb類,表示microtypeb介面型別的充電線,如下所示:

class microtypeb

}

同時,我們有乙個typec介面的手機

inte***ce  typec

class typecphone

public

void

charge()

}

很顯然,當我們的手機沒電的時候,microtypeb介面的充電線是沒有辦法幫上忙的,所以我們需要乙個介面卡

class typecadapter implements typec

@override

public

void

charge()

}

測試的客戶端如下所示

public

static

void

main(string args)

執行程式,可以看到,我們的typec介面型別的手機成功地使用了microtypeb型別的充電線,這使得原本不匹配的介面型別變得匹配了。

介面卡模式的應用場景其實是相當廣泛的,特別是當我們拿到乙份**,無法或者不希望對其進行修改,卻需要使用其中的一些功能,但是其中的介面跟我們所要的介面型別不一致的時候,介面卡模式就排上了很大的用場,正如我們可以使用乙個介面卡,使得type-c介面的手機可以使用micro type b介面型別的充電線一樣,我們可以編寫乙個介面卡介面,使得原本不適合的使用的介面轉化為適配的介面(這裡需要注意的是,使用可以不需要知道誰匹配了介面卡,只需要知道介面卡所提供的介面是適合使用的即可)。

本小節我們主要學習了介面卡模式,包括了介面卡模式的簡單理解,並且通過充電線模式,編寫**實現了乙個介面卡,加深對介面卡模式的理解,設計模式的學習之路還在繼續。

設計模式之介面卡模式(類介面卡模式)

介面卡模式,即定義乙個包裝類,用於包裝不相容介面的物件 包裝類 介面卡adapter 被包裝物件 適配者adaptee 被適配的類 把乙個類的介面變換成客戶端所期待的另一種介面,從而使原本介面不匹配而無法一起工作的兩個類能夠在一起工作。介面卡模式的形式分為 類的介面卡模式和物件的介面卡模式 模式原理...

設計模式之 介面卡模式

1,介面卡模式把乙個類的介面變換成客戶端所期待的另一種介面,從而使原本因介面不匹配而無法一起工作的兩個類能夠在一起工作 2,介面卡模式有兩種 1 類的介面卡模式 介面卡類繼承源類 這樣介面卡類就繼承了源類有的方法 並實現目標介面,實現在源類中沒有而在介面中有的方法,從而實現介面卡類有目標介面的所有方...

設計模式之介面卡模式

介面卡模式定義 將乙個類的介面,轉換成客戶期望的另乙個介面。介面卡讓原本介面不相容的類可以合作無間。簡單定義 封裝物件,並提供不同的介面。簡單例子 鴨子介面 package headfirst.adapter.ducks public inte ce duck 具體鴨子 package headfi...