設計模式 介面卡模式

2021-09-27 08:59:38 字數 1693 閱讀 4637

介面卡模式(有時候也稱包裝樣式或者包裝)將乙個類的介面適配成使用者所期待的。簡單說就是將不同的介面通過封裝成統一的api,讓原本介面不相容的類可以相容。

分類:

角色

現在要實現這樣乙個功能:將220v的電壓轉成手機能使用的5v電壓

類介面卡

被適配的類:

public

class

voltage220v

}

要適配的介面:

public

inte***ce

ivoltage5v

介面卡類:

public

class

voltageadapter

extends

voltage220v

implements

ivoltage5v

}

使用:

public

class

phone

else

if(ivoltage5v.

output5v()

>5)

}}

public

static

void

main

(string[

] args)

優缺點:

下面通過聚合的方式,改造類介面卡的寫法為物件介面卡

物件介面卡

被適配的類、要適配的介面、使用類都和類介面卡模式寫法相同

介面卡類寫法:

public

class

voltageadapter

implements

ivoltage5v

@override

public

intoutput5v()

return dst;

}}

介面介面卡

當不需要全部實現介面提供的方法時,可以先設計乙個抽象類實現介面,並為該介面中每個方法提供乙個預設實現(空方法),那麼該抽象類的子類可以有選擇地覆蓋父類的某些方法來實現需求。適用於乙個介面不想使用其他所有的方法的情況。

比如inte***ce4這個介面有四個介面方法,但是我們只需要使用這個m1()方法,則可以先設計乙個抽象類absadapter 預設實現該介面的所有方法

public

inte***ce

inte***ce4

//在absadapter 我們將 inte***ce4 的方法進行預設實現

public

abstract

class

absadapter

implements

inte***ce4

public

voidm2(

)public

voidm3(

)public

voidm4(

)}

這個匿名內部類就是absadapter的具體實現類,只重寫我們需要的方法

new

absadapter()

}

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

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

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

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

設計模式 介面卡模式

01 02 author rollen holt 設計模式之 介面卡模式 03 04 05 inte ce window 11 12 abstract class windowadapter 16 public void close 19 public void activated 22 publi...