어뎁터 패턴

김인범's avatar
Nov 13, 2024
어뎁터 패턴
Contents
장점
서로 호환되지 않는 클래스들이 함께 작동 할 수 있도록 중간에 변환기 역할을 하는 어뎁터 클래스를 두어 연결하는 디자인 패턴
 
이질적인 데이터를 내 프로그램에 맞추어서 사용할 수 있게 만드는 작업 어댑터 = 가상 클래스
// 못건드리는 외부 라이브러리 public class OuterTiger { private String fullname = "호랑이"; public String getFullname() { return fullname; } } --------------------------------------------------- public class TigerAdapter extends Animal{ //private Animal an; private OuterTiger outerTiger; public TigerAdapter(OuterTiger outerTiger) { this.outerTiger = outerTiger; } public String getName() { return outerTiger.getFullname(); } } ---------------------------------------------- public class App { public static void main(String[] args) { Doorman doorman = new Doorman(); OuterTiger outerTiger = new OuterTiger(); TigerAdapter ta = new TigerAdapter(outerTiger); Cat cat = new Cat(); Mouse mouse = new Mouse(); doorman.쫒아내(ta); doorman.쫒아내(cat); doorman.쫒아내(mouse); } }
 
 
notion image
기존의 Animal은 Cat과 Mouse는 서로 호환되는 클래스였고 OuterTiger를 추가로 doorman.쫒아내 메서드에 넣어 사용하고 싶었지만 호환되지 않는 클래스인 탓에 TigerAdapter 클래스를 거쳐서 사용이 가능하도록 만들 수 있었다.
 

장점

  1. 호환성 제공
  1. 유연한 설계
  1. 재사용성 증가
 
Share article

taker