場景
您的儲存卡中有一些**,需要將它們傳輸到計算機上。為了傳輸它們,您需要某種與計算機埠相容的介面卡,以便將儲存卡連線到計算機。在這種情況下,讀卡器是介面卡。另乙個例子是著名的電源介面卡; 三腳插頭不能連線到雙管插座,需要使用電源介面卡使其與雙叉插座相容。另乙個例子是翻譯人員將乙個人所說的話翻譯成另乙個人維基百科
允許將現有類的介面用作另乙個介面。它通常用於使現有類與其他類一起工作而無需修改其源**。(介面卡模式允許您將其他不相容的物件包裝在介面卡中,以使其與另乙個類相容。)以下示例場景
漢語翻譯成英語通過繼承來實現介面卡功能
public
class
speakchinese
}
public
inte***ce
speakenglish
public
class
translation
extends
speakchinese
implements
speakenglish
}
@test
public
void
clazz()
類圖如下所示
類介面卡的把speakchinese中的方法暴露給了介面卡,使用起來成本增加
原理:通過組合來實現介面卡功能。
public
class
translationobjectadapter
implements
speakenglish
@override
public
void
speakenglish()
}
測試
@test
public
void
objecttest()
類圖如下:
物件介面卡和類介面卡其實算是同一種思想,只不過實現方式不同,對於介面卡模式用法還是有改變的
原理:通過抽象類來實現適配,這種適配稍別於上面所述的適配
現在不只是需要翻譯成英語,需要翻譯成日語、法語或西班牙語或者需要這幾種語言任意組合
建立介面
public
inte***ce
speakmany
中間介面卡
public
abstract
class
implements
speakmany
@override
public
void
speakjpanese()
@override
public
void
speakspanish()
@override
public
void
speakenglish()
@override
public
void
speakfrances()
}
雙語
public
class
speakspanishandenglish
extends
@override
public
void
speakenglish()
@override
public
void
speakfrances()
}
測試
@test
public
void()
類圖如下:
介面卡模式Adapt
例子 牆上的插座為三孔介面,但是很多家電都是雙孔標準,這個時候就需要乙個介面卡,讓雙孔的家電通過介面卡後也可以接入三孔介面的插座 兩種介面卡 物件介面卡 三孔插座 雙孔插座 使用雙孔插座的電視 物件介面卡 author wjm date 2020 6 16 17 10 public class tv...
介面卡模式(Adapt) 設計模式(六)
作用 將乙個類的介面轉換成客戶希望的另外乙個介面。adapt 模式使得原本由於介面不相容而不能一起工作的那些類可以一起工作。解析 adapt 模式其實就是把完成同樣的乙個功能但是介面不能相容的類橋接在一起使之可以在一起工作,這個模式使得復用舊的介面成為可能.實現 adapt 模式有兩種實現辦法,一種...
設計模式之介面卡模式(類介面卡模式)
介面卡模式,即定義乙個包裝類,用於包裝不相容介面的物件 包裝類 介面卡adapter 被包裝物件 適配者adaptee 被適配的類 把乙個類的介面變換成客戶端所期待的另一種介面,從而使原本介面不匹配而無法一起工作的兩個類能夠在一起工作。介面卡模式的形式分為 類的介面卡模式和物件的介面卡模式 模式原理...