介面卡設計模式

2021-10-10 17:34:11 字數 1264 閱讀 6012

介面卡模式把乙個類的介面轉換成客戶端期待的另外一種介面, 從而是原本應用介面不匹配而無法在一起工作的兩個類能夠在一起工作.

舉個例子來說,現在一般的家用電器要求的電壓都是 220v,但有個別電器要求使用110v 電壓,怎麼辦?這時就需要用乙個能把 220v 電壓轉換成 110v 電壓的變壓器,這個變壓器就是乙個介面卡。

系統需要使用類的介面不符合系統的要求

要建立乙個可以重複使用的類, 用於與該類之間的關聯不大的一些類, 包括工作中引用的類

類的介面卡模式使用起來有點像多重整合機制, 利用介面的特性, 把一些零散類組織到一起, 成為乙個新的類來實現呼叫, 並且看起來像是對乙個類的操作. 實際上, 介面卡模式更過的是強調對**的組織, 而不是功能的實

系統需要使用現有的類,而這些類的介面不符合系統的介面

target: 目標介面類, 客戶所期待的介面, 目標可以是具體的或者抽象的類, 也可以是介面

adaptee: 需要適配的類

adapter: 通過包裝乙個需要的支配器物件, 把原來的介面轉換成目標介面

有乙個220v的電源,它的目的是充電

public

inte***ce

power220v

手機類接受這個電源進行充電,但是手機不能直接用220v電源,只能充5v的電源

public

class

phone

}

5v電源類

public

class

power5v

}

手機接受乙個220v的電源,但最終要轉化成5v電源,所以就需要乙個介面卡,這個介面卡實現power220v介面,並組合power5v,這樣子實際呼叫的就是power5v的充電方法

public

class

adapter

implements

power220v

@override

public

void

docharge220v()

}

呼叫語句,最終實現了利用介面卡進行5v充電

phone phone =

newphone()

;phone.

docharge

(new

adapter

(new

power5v()

));

設計模式 介面卡模式 類介面卡 物件介面卡

乙個小例子,便於理解,上 這是我們造的。現在想用這個方法。public class adaptee 類介面卡。對我們想要的方法封裝一下,target就能像之前一樣,呼叫request方法即可。public class adapter1 extends adaptee implements targe...

設計模式 介面卡模式(類介面卡和物件介面卡)

如果去歐洲國家去旅遊的話,他們的插座如下圖最左邊,是歐洲標準。而我們使用的插頭如下圖最右邊的。因此我們的膝上型電腦,手機在當地不能直接充電。所以就需要乙個插座轉換器,轉換器第1面插入當地的插座,第2麵供我們充電,這樣使得我們的插頭在當地能使用。生活中這樣的例子很多,手機充電器 將220v轉換為5v的...

設計模式 介面卡

一 功能 將乙個類的介面轉換成客戶希望的另外乙個介面,解決兩個已有介面之間不匹配的問題。adapter模式使得原本由於介面不相容而不能一起工作的那些類可以一起工作。二 示例 1 class adapter namespace designpattern adapter class target cl...