본문 바로가기

프로그래밍 강의 메모/코딩으로 학습하는 GoF의 디자인 패턴_백기선

구조 관련 디자인 패턴 > 어댑터 패턴(Adapter Pattern)

https://inf.run/6Shr

 

코딩으로 학습하는 GoF의 디자인 패턴 - 인프런 | 강의

디자인 패턴을 알고 있다면 스프링 뿐 아니라 여러 다양한 기술 및 프로그래밍 언어도 보다 쉽게 학습할 수 있습니다. 또한, 보다 유연하고 재사용성이 뛰어난 객체 지향 소프트웨어를 개발할

www.inflearn.com

 

 

어댑터 패턴

  • 구조 관련 디자인 패턴.
  • 기존 코드클라이언트가 사용하는 인터페이스의 구현체로 바꿔주는 패턴.
  • 클라이언트가 사용하는 인터페이스를 따르지 않는 기존 코드를 재사용할 수 있게 해준다.
  • 라이브러리를 랩핑할 때 자주 사용하는 패턴이다.

 

 

클라이언트가 Target이라는 인터페이스를 의존하고 있다.

 

기존 코드인 Adaptee가 이 Target을 실체화하고 있지 않아 클라이언트가 Adaptee를 사용하지 못하고 있는 상황이다.

 

이럴 때 Target을 실체화한 Adapter 클래스를 정의하고 Adapter 클래스의 멤버로 Adaptee를 갖고 있도록 한다.

 

그래서 클라이언트가 Target의 오퍼레이션을 호출하면 Adaptee의 스페시픽오퍼레이션이 동작하도록 구성하게 된다.



Object adapter

 

Class adapter




 

어댑터 패턴의 장점

1. 기존 코드를 변경하지 않고 원하는 인터페이스 구현체를 만들어 재사용할 수 있다.

2. 기존 코드가 하던 일특정 인터페이스 구현체로 변환하는 작업각기 다른 클래스로 분리하여 관리할 수 있다.

 

어댑터 패턴의 단점

새 클래스가 생겨 복잡도가 증가할 수 있다.

경우에 따라서는 기존 코드가 해당 인터페이스를 구현하도록 수정하는 것이 좋은 선택이 될 수도 있다.

 

 

 

 

 

 

https://refactoring.guru/ko/design-patterns/adapter

 

Adapter

/ Design Patterns / Structural Patterns Adapter Also known as: Wrapper Intent Adapter is a structural design pattern that allows objects with incompatible interfaces to collaborate. Problem Imagine that you're creating a stock market monitoring app. The a

refactoring.guru