介面卡模式(有時候也稱包裝樣式或者包裝)將乙個類的介面適配成使用者所期待的。簡單說就是將不同的介面通過封裝成統一的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...