Facade 패턴 vs Composite 패턴
1. Facade 패턴 :
- 목적 : 복잡한 서브시스템을 감추고, 단순한 인터페이스로 제공하여 클라이언트가 쉽게 시스템을 사용할 수 있게 한다.
- 구조 : 여러 클래스(서브시스템)을 감싸서 간단한 인터페이스를 제공하는 클래스이다.
- 주 사용 사례: 복잡한 시스템의 동작을 감추고 단순하게 사용하게 하고 싶을 때
2. Composite 패턴:
- 목적 : 객체들을 트리 구조로 구성하여 단일 객체와 복합 객체를 동일하게 처리할 수 있게 해준다.
- 구조 : 기본적으로 트리 형태로, 객체가 다른 객체를 포함하거나, 여러 하위 객체를 포함할 수 있는 구조이다.
패턴 비교
- Facade 패턴은 여러 시스템을 감추고 단순한 하나의 인터페이스를 제공하는 반면,
- Composite 패턴은 여러 객체를 구성하는 복합 객체의 계층적 구조를 만들고, 그 객체들이 동일하게 동작할 수 있게 하는 데 중점을 둡니다.
- Profile Composite에 Profile Updater, Profile Appender 등을 포함하는 구조는 Facade 패턴보다는 Composite 패턴에 더 가깝습니다.
- Composite 패턴은 객체들이 계층 구조를 이루고, 개별 객체와 복합 객체를 동일하게 처리하는 패턴이므로, Profile Updater와 Profile Appender가 동일한 인터페이스를 통해 조작된다면 Composite 패턴으로 볼 수 있습니다.