inblog logo
|
taker
    디자인패턴

    어뎁터 패턴

    김인범'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

    RSS·Powered by Inblog