天天看點

設計模式中的擴充卡模式

将一個類的接口轉換成客戶希望的另外一個接口。Adapter模式使得原本由于接口不相容而不能一起工作的那些類可以在一起工作。

比如:現在有個手機要充電,手機是5v的接口,我要用電源是220v的PowerA接口去充電,即調用Power的方法charge(),然而charge(){System.out.println("220V電源")}隻提供220V電源,

而我們還有個5v的PowerB接口:有方法charge({System.out.println("5V電源")})

假如這段代碼已經寫好了我就是要用PowerA這個接口去充電或者現在隻有這個PowerA接口:PowerA p=...

p.charge();

但是又不比對怎麼辦呢?

這時我們可用個擴充卡Adapter去繼承PowerA,重寫其中的charge()方法,使其調用已有的5V PowerB接口中的charge()方法:

private PowerB powerb;//執行個體Adapter時就執行個體它

charge(){

powerb.charge();

}

這樣我們就可以用原來接口PowerA 了:

 PowerA p=newAdapter();

p.charge();

是以這個擴充卡就能讓我們使用已有的類PowerB,又可用原來的接口PowerA。其實将一些現實情況結合模式去想更令我們清楚如何解決實際問題。

繼續閱讀