Adapter Pattern(適配器模式)
Adapter Pattern也被稱為Wrapper Pattern,替我們將A包裝成B可以使用的形狀
當你想要使用三孔的插頭,卻只有兩孔的插座,需要接上兩孔轉三孔的適配器,才能讓三孔的電器能運作
好處
假如你有一個系統,希望它能和一家新廠商的library搭配使用,但新廠商的介面卻跟舊廠商不同,不用特意修改現有的程式碼時,就可以寫一個類別,將新廠商的介面轉換成你所希望的介面
程式範例
建立 Adapter 的設計模式有幾個要注意的地方
1.要先把雙方的interface建立好
2.要有一個類實作這個interface
3.這個Adapter命名方式,是要把A變成B,所以名稱一定為AAdapter
Dog (interface)
public interface Dog {
void eatBone();
void wang();
}
Cat (interface)
public interface Cat {
void catchFish();
void meow();
}
Dog (實例)
public class BigDog implements Dog {
@Override
public void eatBone() {
System.out.println("吃骨頭");
}
@Override
public void wang() {
System.out.println("汪");
}
}
DogAdapter (因為要把狗當成貓 所以要實現貓這個interface,之後對應要實現的方法)
//把狗適配成貓
public class DogAdapter implements Cat {
private Dog dog;
DogAdapter(Dog dog) {
this.dog = dog;
}
@Override
public void catchFish() {
dog.eatBone();
}
@Override
public void meow() {
dog.wang();
}
}
執行效果 (把狗當成貓,但最後執行結果還是一樣是狗的行為)
public class Main {
public static void main(String[] args) {
BigDog bigDog = new BigDog();
DogAdapter dogAdapter = new DogAdapter(bigDog);
dogAdapter.catchFish();
dogAdapter.meow();
}
}
吃骨頭
汪