파사드 패턴(Facade Pattern)
- 파사드 패턴은 어떤 소프트웨어의 다른 커다란 코드 부분에 대한 간략화된 인터페이스를 제공하는 객체
- 파사드 패턴은 서브 시스템을 감춰 주는 상위 수준의 인터페이스를 제공함으로써 ‘코드 중복'과 ‘직접적인 의존' 문제를 해결하는데 도움을 줌
파사드 패턴 구조
1) 파사드 패턴 적용하기
파사드 패턴을 적용할 수 있는 경우
- 위와 같은 설계 구조의 코드가 있다고 생각하자
- 위 설계 구조에서는 세 개의 클래스에서 동일한 Dao에 접근하면서 ‘코드 중복’과 ‘직접적인 의존'이라는 문제점을 가지고 있다.
파사드 패턴 적용하기
- 파사드를 이용해서 ‘코드 중복'과 ‘직접적인 의존’을 해결
- 위 설계에서 ‘EmpReportDaoFacade(파사드)는 서브 시스템에 속한 각 Dao를 이용해 클라이언트가 원하는 데이터를 제공하기 위한 인터페이스를 제공
- 각 클라이언트는 파사드를 이용해 서브시스템에 간접적으로 접근
- 파사드 패턴을 적용하면 코드가 간결해지고 서브 시스템의 일부가 변경되더라도 그 여파는 파사드로 한정될 가능성이 높아짐
2) 파사드 패턴의 장점
- 중복된 코드가 제거되고 코드가 간결
- 직접적인 의존 제거
- 서브 시스템의 일부가 변경되더라도 그 여파는 파사드로 한정될 가능성이 높아짐
- 파사드를 인터페이스로 정의함으로써 클라이언트의 변경 없이 서브 시스템 자체를 변경
3) 파사드 패턴의 특징
- 파사드 패턴을 적용한다고 해서 서브 시스템에 대한 직접적인 접근을 완전히 막는 것은 아님
- 파사드 패턴은 단지 여러 클라이언트에 ‘중복된 서브 시스템 사용을 파사드로 추상화’
- 따라서, 공통된 기능은 파사드를 통해 접근할 수 있도록 하고, 그렇지 않은 경우 서브 시스템에 직접 접근하는 방식을 선택할 수도 있음
'Design Pattern' 카테고리의 다른 글
OOP - Object Oriented (0) | 2024.10.06 |
---|---|
전략 패턴 (Strategy Pattern) (0) | 2022.09.06 |
댓글