어댑터 패턴
어댑터 패턴은 호환되지 않은 인터페이스를 연결하는 디자인패턴입니다. 어댑터 패턴은 어려운거 없으니 바로 확인해보겠습니다.
public interface Target {
void doSomething();
}
public class Adaptee {
public void action() {
System.out.println("action");
}
}
Target과 Adaptee 는 서로 호환될 수 없는 관계입니다. 이 관계를 호환되게 만드는 것이 어댑터 패턴입니다.
우리는 기존코드를 수정하지 않으면서 Target 을 통해 Adaptee 클래스를 통제하고싶습니다. 그래서 두 클래스 사이에 새로운 클래스를 추가하겠습니다.
public class Adapter implements Target {
private final Adaptee adaptee;
public Adapter(Adaptee adaptee) {
this.adaptee = adaptee;
}
@Override
public void doSomething() {
adaptee.action();
}
}
어댑터 패턴 끝났습니다.
Target 인터페이스를 Adapter 클래스에서 상속받고 필드에 Adaptee 를 받아 doSomething 에서 action 메소드를 오버라이딩 했습니다.
이 어댑터 패턴은 기존 코드의 수정 없이 호환되지 않는 클래스를 이어줄 수 있다는 장점이 있습니다. 다만 호환되지 않는 클래스의 연결로 인해 코드 복잡성이 증가하면서 유지보수가 어려워 질 수 있다는 단점도 존재합니다.
'디자인패턴 > 구조' 카테고리의 다른 글
자바(JAVA) - 경량 패턴(Flyweight Pattern) (0) | 2024.12.05 |
---|---|
자바(JAVA) - 복합 패턴(Composite Pattern) (0) | 2024.12.05 |
자바[JAVA] - 퍼사드 패턴(Facade Pattern) (0) | 2024.11.09 |
자바[JAVA] - 데코레이터 패턴(Decorator Pattern) (0) | 2024.10.02 |
자바(JAVA) - 브릿지 패턴(Bridge Pattern) (0) | 2024.09.30 |