適用於兩個不匹配介面使用一個轉接器使得雙方能夠互相溝通
Ex.

  1. 三孔插頭無法直接插入兩孔的插座,加個轉接頭便可插入
  2. 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!!







你可能感興趣的文章

JavaScript 捉摸不定的 This

JavaScript 捉摸不定的 This

[ 紀錄 ] 實戰練習 - 抽獎程式 (以 Express 實作後端 API )

[ 紀錄 ] 實戰練習 - 抽獎程式 (以 Express 實作後端 API )

Week3 - 挑戰題:走迷宮

Week3 - 挑戰題:走迷宮






留言討論