Adapter Pattern

Ye SeungJae·2023년 11월 22일

디자인패턴

목록 보기
2/2

어댑퍼 패턴
アダプターパターン

호환되지 않는 인터페이스를 연결하는 디자인패턴
오작교 패턴이라고 부르고 싶다.

실제 적용된 사례: JAVA의 InputStreamReader, Spring framework의 HanderAdapter

public interface Target{
	void doSomething();
}

Target이란 호출할 인터페이스.

public class Adaptee{
	public void performAction(){
    	System.out.println("hello world");
    }
}A

Adaptee란 호환되지 않는 기존 대상

public class Adapter implements Target{
	private final Adaptee daptee;
    
    public Adapter(Adaptee adaptee){
    	this.adaptee = adaptee;
    }
    
    @Override
    pulbic void doSomething(){
    	adaptee.performAction();
    }
}

pubic class Client{
	public static void main(String[] args){
    	Adaptee adaptee1 = New Adaptee();
		Target target1 = new Adapter(adaptee1);
    	target1.doSometing(); // performAction()가 실행됨.
    }
}

장점: 코드 재사용 가능, 중복 줄여줌
단점: 소스코드 늘어남, 복잡도 증가

-> API, 라이브러리를 사용하는 도중 기존 코드와 맞지 않는 경우,
어댑터 패턴을 이용하여 호환할 수 있다.

패턴을 배우긴 배웠고, 이해는 했으나 실제로 사용할 일이 많지는 않을 것 같다. 그러나 기존의 라이브러리등의 코드를 읽고 이해하는 능력이 오를 것 같다.

참고:https://inpa.tistory.com/entry/GOF-%F0%9F%92%A0-%EC%96%B4%EB%8C%91%ED%84%B0Adaptor-%ED%8C%A8%ED%84%B4-%EC%A0%9C%EB%8C%80%EB%A1%9C-%EB%B0%B0%EC%9B%8C%EB%B3%B4%EC%9E%90

여기에

이 말이 전혀 모르겠다.

profile
a developer in tokyo

0개의 댓글