컴포짓 패턴이란?

개별 객체와 복합 객체를 동일하게 다룰 수 있도록 하는 패턴

여러 객체들로 구성된 복합 객체와 단일 객체를 클라이언트에서 구별 없이 다루게 해주는 패턴

구조

structure.png

  • Component
    모든 클래스에 해당하는 공통의 행동을 정의하고 구현.
  • Composite
    자식을 가지는 클래스를 구현함. 자식과 관련된 연산을 포함함.
  • Leaf
    구성 요소의 기본이 되는 객체를 정의함.

장점

  • 단일 객체와 복합 객체를 구별하지 않고 동일하게 생각하여, 같은 객체군으로 묶어서 관리할 때 편리

단점

  • 복합객체 내 구성 요소의 깊이 만큼, 코드 단위의 디버깅이 힘들어진다.

참고