Design Pattern Adapter

기술노트
Design Pattern - Adapter Pattern

---

[어댑터 패턴]

국가별 사용하는 전압이 달라서 220v를 110v형으로 바꿔서 끼우는 경우를 생각해보기.

  • 실행 부분 (Main.java)
java
  public class Main {
      public static void main (String[] args) {
          MediaPlayer player = new MP3();
          player.play("file.mp3");
          
          // MediaPlayer로 실행 못하는 MP4가 있음.
          // 이것을 mp3처럼 실행시키기 위해서,
          // Adapter를 생성하기.
          player = new FormatAdapter(new MP4());
          player.play("file.mp4");
      }
  }
  • 변환 장치 부분 (FormatAdapter.java)
java
  // MediaPlayer의 기능을 활용하기 위해 FormatAdapter라는 새로운 클래스를 생성
  // 그리고 그 클래스 내부에 (MP4, MKV와 같은) 클래스를 정리하려고 함.
  public class FormatAdapter implements MediaPlayer {
      private MediaPackage media;
      public FormatAdapter(MediaPackage m) {
          media = m;
      }
      // 그리고 반드시 사용해야하는 클래스의 함수를 선언해 둠
      @Override
      public void play(String filename) {
          System.out.print("Using Adapter");
          media.playFile(filename);
      }
  }