Design Patterns - Compound Pattern

다용도리모콘·2021년 4월 27일
0

Design Patterns

목록 보기
11/11

Compound Pattern

여러가지 패턴을 함께 사용하는 패턴.
단, 여러가지 패턴을 섞어서 쓰기만 하면 Compound Pattern이 되는게 아니라 이를 통해 일반적인 문제를 해결할 수 있어야 비로소 Compound Pattern이라고 할 수 있다.

안전성 vs 투명성

Component를 상속(or 구현)한 Composite와 Leaf를 만들 때 Composite에서만 필요한 메서드를 Leaf에도 강제하게 되면 클라이언트는 노드를 사용할 때 해당 노드가 Composite인지 Leaf인지 확인하지 않아도 되므로 투명성이 보장되지만 Leaf에 불필요한 메서드를 구현하게 만든다는 점에서 안전성이 떨어진다.
반대로 Leaf에 메서드를 구현하지 않을 경우 불필요한 메서드를 구현, 호출할 일이 없어지지만 클라이언트가 해당 노드의 타입을 확인해야하는 불편함이 생긴다.
상황에 따라 적절한 방법을 생각해 볼 필요가 있다.

0개의 댓글