例項:現在有的物品是: 二相插孔、電腦(只支援三相插頭),其中,電腦的供電只能有三相插頭的供電方法進行。問題是怎麼給電腦供電。所以,我們借助了乙個介面卡(二相轉三相)實現三相插頭的供電方法,而這個介面卡本質上是輸入二相,轉化為三相,所以,構建這個介面卡需要乙個二相插孔引數,介面卡實現的三相供電方法,其實就是在方法裡使用了二相插孔的供電方法,這樣,筆記本就有電了。。
定義:將乙個類的介面轉換成客戶希望的另外乙個介面。adapter模式使得原本由於介面不相容而不能一起工作的那些類可以在一起工作。
模式中的角色:
目標介面(target):客戶所期待的介面(三相)。目標可以是具體的或抽象的類,也可以是介面。
需要適配的類(adaptee):需要適配的類或適配者類。(二相)
介面卡(adapter):通過包裝乙個需要適配的物件,把原介面轉換成目標介面。(二相轉三相)
}測試**:
target adapter = new objectadapter(new adaptee());
adapter.request();
當你想實現乙個介面但又不想實現介面中所有的方法,只想去實現一部分方法時,就用到了預設介面卡模式。
解決方案:
在介面和具體實現類中新增乙個抽象類,而用抽象類是實現目標介面的所有方法。而具體的實現類只需要覆蓋其需要完成的方法即可。
舉例:1 介面類(有許多方法:吃,睡,工作以及鍛鍊,但是我懶只想吃喝睡)
public
inte***ce live
2 抽象類:
public
class
livedefault
implements
live
@override
public
void
eat(){}
@override
public
void
work(){}
@override
public
void
train(){}
}
3 實現類
public
class
liveimpl
extends
livedefault
@override
public
void
sleep()
}
設計模式 介面卡模式 類介面卡 物件介面卡
乙個小例子,便於理解,上 這是我們造的。現在想用這個方法。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...