介面卡模式Adapter Pattern

2021-08-31 21:39:49 字數 1191 閱讀 4973

介面卡模式(包裝模式)——一種補救的模式

定義:將乙個類的介面變換成客戶端所期待的另一種介面,從而使原本的介面不匹配而無法在一起工作的兩個類能夠在一起工作。

實現方式:

(類適配)將目標型別設定成乙個介面。讓適配類繼承待變換類,實現目標類介面。這樣適配類就轉化成了目標型別。(滿足單一繼承原則)

(物件適配)如果是有多個不同的待變換類,要將他們融合起來並轉換為目標類。便可以使用介面與關聯實現。即讓適配類關聯各個待轉換類。

介面卡模式的優點:

介面卡模式可以讓兩個沒有任何聯絡的類在一起執行,只要介面卡這個角色能夠搞定他們就成;

增加了類的透明性;

提高了類的復用性; 

靈活性非常好。

使用場景:

有動機修改乙個已經投入生產的介面時,介面卡模式最為適合。比如:系統需要擴充套件,需要使用乙個已有或新建立的類,但這個類又不符合系統的介面。

注意事項:

它不是為了解決還處在開發階段的問題而生的。

介面卡模式類圖(類適配):

介面卡模式類圖(物件適配):

類圖中涉及到的三個角色:

target目標角色:該角色定義把其他的類轉化成何種介面,即客戶所期望的介面; 

adaptee原角色:待轉換的類

adapter介面卡角色:介面卡模式的核心角色,其他兩個角色都是已經存在的角色,這個角色需要新建立。它通過繼承或者類間關聯的方式將待轉換角色轉換為目標角色。

介面卡模式通用模板:(類適配)

//目標角色

public inte***ce target

//目標角色的實現類

public class concretetarget implements target

}//原角色

public class adaptee

}//介面卡角色

public class adapter extends adaptee implements target

}//場景類

public class client

}

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

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

介面卡模式 預設介面卡,類介面卡,物件介面卡

模式思想 改變乙個類的對外介面 增加或減少 以滿足不同外部呼叫者的需求 角色成員 目標介面 target 客戶所期待的介面。目標可以是具體的或抽象的類,也可以是介面。需要適配的類 adaptee 需要適配的類或適配者類。介面卡 adapter 通過包裝乙個需要適配的物件,把原介面轉換成目標介面。適配...

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

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