퍼사드 패턴은 복잡한 내부 구조나 코드들을 감추고 외부에는 단순한 인터페이스만 제공하는 소프트웨어 디자인 패턴이다.
퍼사드 패턴은 다음과 같은 문제를 해결한다.
- 클라이언트가 복잡한 서브 시스템에 의존하는 문제
클라이언트가 복잡한 서브 시스템에 의존하는 문제
클라이언트가 복잡한 서브 시스템을 직접 사용한다면 여러 개의 객체와 다양한 인터페이스에 의존하게 된다. 이는 클라이언트 코드의 구현, 변경, 테스트, 재사용을 어렵게 만든다.
파사드 패턴은 이러한 문제를 아래와 같이 해결한다.
- 복잡한 서브 시스템에 대한 간단한 인터페이스를 정의하고 제공한다.
- 클라이언트가 직접 처리하던 서브 시스템에 대한 요청은 파사드 내부에서 위임(
delegation
) 방식으로 처리한다.
- 클라이언트가 직접 처리하던 서브 시스템에 대한 요청은 파사드 내부에서 위임(
이는 결과적으로, 클라이언트는 퍼사드를 통해서만 서브 시스템에 접근하게 되고, 서브 시스템에 대한 의존성이 줄어들어 코드가 더 단순하고 유연해진다.
다른 패턴과의 관계
- 어댑터 패턴
- 퍼사드는 기존 객체들을 위한 새 인터페이스를 정의하는 반면 어댑터는 기존의 인터페이스를 사용할 수 있게 만들려고 노력한다.
- 일반적으로 퍼사드는 많은 객체의 서브 시스템과 함께 작동하지만 어댑터는 하나의 객체만 래핑 한다.
- 추상 팩토리
- 퍼사드는 클라이언트 코드에서 서브 시스템의 사용을 숨긴다. 추상 팩토리 메서드는 서브 시스템의 생성 방식을 숨긴다.
- 프록시
- 퍼사드는 새로운 인터페이스를 정의하는 반면 프록시는 자신의 서비스 객체와 같은 인터페이스를 가지므로 서로 상호 교환이 가능하다.
- 파사드 패턴 위키: https://en.wikipedia.org/wiki/Facade_pattern
- 파사드 패턴 구루: https://refactoring.guru/design-patterns/facade
'자바' 카테고리의 다른 글
Proxy Pattern 정리 (0) | 2025.04.28 |
---|---|
Composite Pattern 정리 (0) | 2025.04.18 |
Delegation Pattern 정리 (0) | 2025.04.14 |
Decorator Pattern 정리 (0) | 2025.04.11 |
Adapter Pattern 정리 (0) | 2025.04.08 |