inblog logo
|
devleekangho
    용어정리

    [디자인 패턴] 어댑터 패턴 (Adapter Pattern)

    KangHo Lee's avatar
    KangHo Lee
    Nov 13, 2024
    [디자인 패턴] 어댑터 패턴 (Adapter Pattern)
    Contents
    1. 주요 개념2. 기존 소스 코드3. 어댑터 패턴 적용
    💡
    두 개의 서로 다른 인터페이스를 가진 클래스를 함께 사용할 수 있도록 해주는 디자인 패턴

    1. 주요 개념

    • 타깃 인터페이스(Target Interface): 클라이언트가 사용하려고 하는 인터페이스입니다.
    • 어댑티(Adaptee): 호환되지 않는 인터페이스를 가진 기존 클래스입니다.
    • 어댑터(Adapter): 타깃 인터페이스를 구현하여 어댑티의 인터페이스를 타깃 인터페이스로 변환합니다.

    2. 기존 소스 코드

    // main public class App { public static void main(String[] args) { Doorman doorman = new Doorman(); Mouse mouse = new Mouse(); Cat cat = new Cat(); doorman.쫓아내(cat); doorman.쫓아내(mouse); } }

    3. 어댑터 패턴 적용

    public class OuterTiger { private String fullname = "호랑이"; public String getFullname() { return fullname; } } public class TigerAdapter extends Animal{ // OuterTiger에 의존 private OuterTiger outerTiger; public TigerAdapter(OuterTiger outerTiger) { this.outerTiger = outerTiger; } @Override public String getName() { return outerTiger.getFullname(); } } // main public class App { public static void main(String[] args) { Doorman doorman = new Doorman(); Cat cat = new Cat(); Mouse mouse = new Mouse(); OuterTiger outerTiger = new OuterTiger(); TigerAdapter ta = new TigerAdapter(outerTiger); doorman.쫓아내(cat); doorman.쫓아내(mouse); doorman.쫓아내(ta); } }
    • 타깃 인터페이스는 Animal 클래스입니다.
    • 어댑티는 OuterTiger 클래스입니다.
    • 어댑터는 TigerAdapter 클래스입니다.
     
    Share article
    Contents
    1. 주요 개념2. 기존 소스 코드3. 어댑터 패턴 적용

    devleekangho

    RSS·Powered by Inblog