適用於兩個不匹配介面使用一個轉接器使得雙方能夠互相溝通
Ex.
- 三孔插頭無法直接插入兩孔的插座,加個轉接頭便可插入
- iPhone可利用lightning轉3.5mm的轉接器便可以使用有線耳機
這裡有Cat, Dog介面,使用轉接器來讓Dog也能使用meow()來發出叫聲
public interface Cat {
void meow();
}
public interface Dog {
void bark();
}
public class PersianCat implements Cat{
@Override
public void meow() {
System.out.println("Meow!");
}
}
public class Dalmatian implements Dog{
@Override
public void bark() {
System.out.println("Woof!!");
}
}
在轉接器中實作meow()時,使用的是Dog的bark()來實作
public class CatAdapter implements Cat{
Dog dog;
public CatAdapter(Dog dog) {
this.dog = dog;
}
@Override
public void meow() {
dog.bark();
}
}
public class DemoTest {
public static void main(String[] args) {
Cat cat = new PersianCat();
cat.meow();
Dog dog = new Dalmatian();
CatAdapter adapter = new CatAdapter(dog);
adapter.meow();
}
}
Meow!
Woof!!