호환되지 않는 인터페이스를 사용하는 클라이언트를 그대로 활용할수 있다.
이렇게 함으로써 클라이언트와 구현된 인터페이스를 분리시킬수 있으며, 향후 인터페이스가 바뀌더라도 그 변경 내역
은 어댑터에 캡슐화 되기 때문에 클라이언트는 바뀔 필요가 없어진다.
예를 들어보면 기존 시스템의 서버간 통신은 EJB, Socket(TCP/IP)를 사용중이 었으나 추가된 시스템은 Http통신이 필요하다.
public class HttpTransfer {
public void doProcess() {
System.out.println("doProcess call : " + this.getClass().getName());
}
}
Transfer transfer = new HttpTransferAdapter(new HttpTransfer());
transfer.doProcess();
Transfer transfer1 = new EJBTransfer();
transfer1.doProcess();
>
doProcess call : adapter.HttpTransfer
doProcess call : adapter.EJBTransfer
참조
https://jusungpark.tistory.com/22
'PATTERN' 카테고리의 다른 글
[PATTERN] Proxy Pattern (0) | 2021.09.24 |
---|---|
[PATTERN] Producer - Consumer (0) | 2021.08.27 |
[PATTERN] DelegationPattern (0) | 2021.07.13 |