어댑터패턴은 기존 코드를 새로운 코드에 맞추는 기법이다.
1. 정의
어댑터 패턴(Adapter Pattern)은 구조 패턴(Structural Pattern) 중 하나로, 호환되지 않는 인터페이스를 가진 두 객체를 연결할 수 있도록 해주는 디자인 패턴이다. 즉, 기존 클래스의 인터페이스를 클라이언트가 기대하는 인터페이스로 변환해 주어, 서로 호환되지 않는 시스템들이 상호작용할 수 있게 해주는 역할을 한다.
2. 예제 코드
// 못 건드리는 외부 라이브러리
public class OuterTiger {
private String fullname = "호랑이";
public String getFullname() {
return fullname;
}
}
// 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();
}
}
3. 정리
OuterTiger
클래스- 외부에서 제공하는 호랑이 클래스이다.
getFullnam()
메서드를 통해 이름을 반환한다.- 직접 상호작용할 수 없어, 이를 어댑터 패턴을 통해 호환 가능한 인터페이스로 변환해야 한다.
TigerAdapter
클래스OuterTiger
클래스의 인터페이스를Animal
인터페이스로 변환하여 호환성을 맞추는 어댑터이다.OuterTiger
객체를 내부에 가지고 있어,getName()
메서드에서OuterTiger
의getFullname()
메서드를 호출해 이름을 반환한다.
Share article