JAVA設計模式——(1)適配器模式
- 目的
- 理解
- 實現
- 優勢
目的
將一個類的接口變換成客戶端所期待的另一種接口,從而使原本因接口不匹配而無法一起工作的兩個類能夠在一起工作。
理解
可以想象成一個國標的插頭,結果插座是德標的,這會想要使用這個插座,就需要一個德標轉國標的適配器,那么這個適配器需要繼承德標(源角色)能夠充電的能力(或者其他能力)吧,還要具備轉換為國標(目標角色)的能力,那國標就是新需求,需要實現的接口。
具體而言,適配器具備源角色的功能,又能擴展目標角色的功能。
實現
源角色:
package cn.sh.designepattern.example02;/*** @Author song* @Version 0.0.1* @Date 2025/4/19 19:55* @Contact 643947568@qq.com*/
public class OuBiao {public void chargeOuBiao(){System.out.println("歐標充電器充電");}
}
目標角色:
package cn.sh.designepattern.example02;/*** @Author song* @Version 0.0.1* @Date 2025/4/19 19:55* @Contact 643947568@qq.com*/
public interface GuoBiao {public void chargeGuoBiao();}
適配器:
package cn.sh.designepattern.example02;/*** @Author song* @Version 0.0.1* @Date 2025/4/19 19:56* @Contact 643947568@qq.com*/
public class ChargerAdapter extends OuBiao implements GuoBiao{@Overridepublic void chargeGuoBiao() {super.chargeOuBiao();System.out.println("國標充電");}public static void main(String[] args) {GuoBiao guoBiao = new ChargerAdapter();guoBiao.chargeGuoBiao();}
}
優勢
對于已經投產的系統功能進行擴展,需要使用已有類,但是這個類不符合系統重的接口,則可以使用適配器模型,將這個類進行轉換,轉換成符合系統接口、可以使用的類。
另外適配可以重寫一些被適配類的行為,增強其功能或者修改部分功能。