設計模式之介面卡模式

2022-03-21 08:52:41 字數 987 閱讀 6680

名詞解釋:

介面卡模式:將乙個類的介面轉換成客戶希望的另外乙個介面。adapter模式使得原本由於介面不相容而不能一起工作的那些類可以一起工作。

使用場景:

系統的資料和行為都正確,但介面不符時,我們應該考慮使用介面卡,目的是使控制範圍之外的乙個原有物件與某個介面匹配。介面卡模式主要應用於希望復用一些現存的類,但是介面又與復用環境要求不一致的情況。(用最簡單的一句話說就是,有兩個比較相似的類,但是具有不同的介面時要使用它,也就是在雙方都不太容易修改的時候再使用介面卡模式適配。)

必要元素:

1.客戶所期待的介面,目標可以是具體的或抽象的類,也可以是介面;

2.要適配的類;

3.乙個用於包裝需要適配類的類。

上例子:

target類(即客戶需要的類,可以是一般的類或者抽象類,也可以是介面):

class

target

}

adaptee類,需要適配的類:

class

adaptee

}

adapter,用於包裝適配類的類:

class

adapter:target

}

關鍵點就在這個adapter類,其中放了乙個adaptee類的例項,由於adaptee的方法名稱是specificrequest,而客戶希望的是request方法,所以我們需要在adapter中重寫request,在request中訪問adaptee的specificrequest方法即可。

呼叫它吧:

target target = new

adapter();

target.request();

console.read();

例項化乙個封裝類的物件,然後呼叫方法即可。

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

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

設計模式之 介面卡模式

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

設計模式之介面卡模式

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