어댑터 패턴
- 구조 관련 디자인 패턴.
- 기존 코드를 클라이언트가 사용하는 인터페이스의 구현체로 바꿔주는 패턴.
- 클라이언트가 사용하는 인터페이스를 따르지 않는 기존 코드를 재사용할 수 있게 해준다.
- 라이브러리를 랩핑할 때 자주 사용하는 패턴이다.
클라이언트가 Target이라는 인터페이스를 의존하고 있다.
기존 코드인 Adaptee가 이 Target을 실체화하고 있지 않아 클라이언트가 Adaptee를 사용하지 못하고 있는 상황이다.
이럴 때 Target을 실체화한 Adapter 클래스를 정의하고 Adapter 클래스의 멤버로 Adaptee를 갖고 있도록 한다.
그래서 클라이언트가 Target의 오퍼레이션을 호출하면 Adaptee의 스페시픽오퍼레이션이 동작하도록 구성하게 된다.
Object adapter
Class adapter
어댑터 패턴의 장점
1. 기존 코드를 변경하지 않고 원하는 인터페이스 구현체를 만들어 재사용할 수 있다.
2. 기존 코드가 하던 일과 특정 인터페이스 구현체로 변환하는 작업을 각기 다른 클래스로 분리하여 관리할 수 있다.
어댑터 패턴의 단점
새 클래스가 생겨 복잡도가 증가할 수 있다.
경우에 따라서는 기존 코드가 해당 인터페이스를 구현하도록 수정하는 것이 좋은 선택이 될 수도 있다.
https://refactoring.guru/ko/design-patterns/adapter
'프로그래밍 강의 메모 > 코딩으로 학습하는 GoF의 디자인 패턴_백기선' 카테고리의 다른 글
구조 관련 디자인 패턴 > 컴포짓 패턴(Composite Pattern) (0) | 2022.05.25 |
---|---|
구조 관련 디자인 패턴 > 브릿지 패턴(Bridge Pattern) (0) | 2022.05.25 |
객체 생성과 관련 디자인 패턴 > 프로토타입 패턴(Prototype Pattern) (0) | 2022.05.25 |
객체 생성과 관련 디자인 패턴 > 빌더 패턴(Builder Pattern) (0) | 2022.05.25 |
객체 생성과 관련 디자인 패턴 > 추상 팩토리 패턴(Abstract Factory Pattern) (0) | 2022.05.25 |