[소프트웨어 디자인 패턴] 9. Adapter Pattern & Facade Pattern

scarleter99·2023년 11월 11일
post-thumbnail

Adapter Pattern

  • 특정 클래스 인터페이스를 클라이언트에서 요구하는 다른 인터페이스로 변환한다.
    • 인터페이스가 호환되지 않아 같이 쓸 수 없었던 클래스를 사용할 수 있게 해준다.
  • 클라이언트는 Adapter 클래스가 어떤 Apatee 클래스를 포함하고 있는지 고려하지 않는다.

적용방법

  1. Adapter 클래스를 기존 인터페이스를 상속받아 정의한다.
  2. 클라이언트에서 요구한 인터페이스를 상속받은 Adaptee 클래스를 Adapter 클래스에 포함(Composition)시킨다.

Facade Pattern

  • 서브 시스템에 있는 일련의 인터페이스를 통합 인터페이스로 묶는다.
  • 고수준 인터페이스도 정의하므로 서브 시스템을 더 편리하게 사용할 수 있다.
  • 클라이언트는 어떤 서브시스템이 Facade 클래스에 포함되어있는지 고려하지 않는다.

적용방법

  1. 서브 시스템의 인터페이스를 포함(Composition)시킨 Facade 클래스를 생성한다.
  2. 클라이언트는 Facade 클래스를 사용해서 서브 시스템의 기능을 실행한다.

0개의 댓글