国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

java設計模式之適配器模式

2019-11-14 09:28:07
字體:
來源:轉載
供稿:網友

適配器模式:將一個類的接口,轉換成客戶期望的另一個接口。適配器讓原來接口不兼容的類可以合作無間。 適配器又包含兩種,一種是對象適配器,另一種是類適配器。 兩者的區別:對象適配器采用組合的方式實現,類適配器采用繼承的方式實現。

類適配器類圖: 這里寫圖片描述 適配器Adapter繼承Adaptee并實現Target接口來實現。

對象適配器類圖: 這里寫圖片描述 適配器Adapter實現Target接口,在request方法中調用Adaptee對象的具體實現。

下面結合充電器適配器的例子來說明。

類圖: 這里寫圖片描述 這個例子是通過適配器來使用安卓充電器給蘋果設備充電。chargeAdapter的實現方式不同決定了是類適配器還是對象適配器。

接口AndroidCharger代碼實現:

public interface AndroidCharger { public void charge();}

AndroidCharge類代碼實現:

public class AndroidCharge implements AndroidCharger{ @Override public void charge() { // TODO Auto-generated method stub System.out.接口AppleCharger代碼實現:

public interface AppleCharger { public void charge();}

AppleCharge類代碼實現:

public class AppleCharge implements AppleCharger{ @Override public void charge() { // TODO Auto-generated method stub System.out.println("使用蘋果充電器充電..."); }}

對象適配器ChargeAdapter代碼實現:

public class ChargeAdapter implements AppleCharger{ AndroidCharger androidCharger; public ChargeAdapter(AndroidCharger androidCharger){ this.androidCharger = androidCharger; } @Override public void charge() { // TODO Auto-generated method stub androidCharger.charge(); }}

類適配器ChargeAdapter2代碼實現:

public class ChargeAdapter2 extends AndroidCharge implements AppleCharger{}

Client類代碼實現:

public static void main(String[] args){ AppleCharger appleCharger = new AppleCharge(); appleCharger.charge(); //使用對象適配器模式 AndroidCharger androidCharger = new AndroidCharge(); ChargeAdapter adapter = new ChargeAdapter(androidCharger); adapter.charge(); //使用類適配器模式 ChargeAdapter2 adapter2 = new ChargeAdapter2(); adapter2.charge(); }}

運行結果:

使用蘋果充電器充電...使用安卓充電器充電...使用安卓充電器充電...
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 广丰县| 永城市| 偃师市| 张家界市| 济阳县| 临海市| 阿图什市| 东海县| 包头市| 遂溪县| 汾西县| 临清市| 云林县| 晴隆县| 张掖市| 铅山县| 彭水| 平舆县| 铜陵市| 麟游县| 雷州市| 伊吾县| 齐齐哈尔市| 安岳县| 云安县| 镇远县| 宜兰县| 灵川县| 沙坪坝区| 额尔古纳市| 广水市| 阳谷县| 佛学| 黄冈市| 青田县| 微山县| 蒙山县| 平舆县| 四平市| 伊金霍洛旗| 青岛市|