[디자인 패턴] 6. 어댑터 패턴

lhs's avatar
Nov 13, 2024
[디자인 패턴] 6. 어댑터 패턴
💡
어댑터패턴은 기존 코드를 새로운 코드에 맞추는 기법이다.
 

1. 정의

어댑터 패턴(Adapter Pattern)은 구조 패턴(Structural Pattern) 중 하나로, 호환되지 않는 인터페이스를 가진 두 객체를 연결할 수 있도록 해주는 디자인 패턴이다. 즉, 기존 클래스의 인터페이스를 클라이언트가 기대하는 인터페이스로 변환해 주어, 서로 호환되지 않는 시스템들이 상호작용할 수 있게 해주는 역할을 한다.

2. 예제 코드

// 못 건드리는 외부 라이브러리 public class OuterTiger { private String fullname = "호랑이"; public String getFullname() { return fullname; } }
OuterTiger.java
 
// OuterTiger와 Cat, Mouse등과의 이질적인 것을 Animal로 동일하게 맞추는 역할 public class TigerAdapter extends Animal { private OuterTiger outerTiger; public TigerAdapter(OuterTiger outerTiger) { this.outerTiger = outerTiger; } @Override public String getName() { return outerTiger.getFullname(); } }
TigerAdapter.java

3. 정리

  • OuterTiger 클래스
    • 외부에서 제공하는 호랑이 클래스이다.
    • getFullnam() 메서드를 통해 이름을 반환한다.
    • 직접 상호작용할 수 없어, 이를 어댑터 패턴을 통해 호환 가능한 인터페이스로 변환해야 한다.
  • TigerAdapter 클래스
    • OuterTiger 클래스의 인터페이스를 Animal 인터페이스로 변환하여 호환성을 맞추는 어댑터이다.
    • OuterTiger 객체를 내부에 가지고 있어, getName() 메서드에서 OuterTigergetFullname() 메서드를 호출해 이름을 반환한다.
Share article

LHS's Study Space