디자인 패턴/구조 패턴

Adapter 패턴

언린이 2021. 9. 11. 15:26

Adapter 패턴은 서로 다른 인터페이스를 가진 두 클래스를 Adapter 클래스로 인터페이스를 통일시켜 사용할 수 있게 해주는 패턴입니다.

 

 

구조

  • Client
    • 써드파티 라이브러리나 외부 시스템을 사용하는 곳입니다.
  • Target
    • Adapter가 구현하는 인터페이스입니다. Client는 Target 인터페이스를 통해 Adaptee인 써드파티 라이브러리를 사용하게 됩니다.
  • Adapter
    • Client와 Adaptee 중간에서 호환성이 없는 둘을 연결시켜주는 역할을 담당합니다. Target 인터페이스를 구현하며, Client는 Target 인터페이스를 통해 Adapter에 요청을 보냅니다. Adapter는 Client의 요청을 Adaptee가 이해할 수 있는 방법으로 전달하고, 처리는 Adaptee에서 이루어집니다.
  • Adaptee
    • 써드파티 라이브러리나 외부 시스템을 의미합니다.

 

 

활용 상황

  • 기존의 코드에 새로운 코드(써드파티 라이브러리, 외부 시스템)를 연동하여 사용하고 싶은데, 두 코드의 인터페이스가 달라, 이를 하나로 통일하여 사용하고 싶을때 유용합니다.

 

 

Adapter 패턴의 장단점

  • 장점
    • 기존 클라이언트 단의 코드 수정을 최소화할 수 있습니다.
    • 클라이언트는 연동 부분을 몰라도, 새로운 코드의 기능을 일관되게 사용할 수 있습니다.
  • 단점
    • Adapter 클래스에서 통일시켜주는 부분을 하나씩 구현해야 합니다.

'디자인 패턴 > 구조 패턴' 카테고리의 다른 글

Facade 패턴  (0) 2021.10.05
Bridge 패턴  (0) 2021.10.02
Decorator 패턴  (0) 2021.09.07
Proxy 패턴  (0) 2021.09.05
Composite 패턴  (0) 2021.09.04