컴포짓 패턴(Composite Pattern)은 객체들을 트리(Tree) 구조로 구성하여 개별 객체(단일 객체)와 복합 객체(그룹)를 클라이언트 입장에서 똑같은 방법으로 다룰 수 있게 해주는 패턴입니다.
가장 완벽한 예시는 파일 시스템입니다. 폴더 안에는 파일이 있을 수도 있고, 또 다른 폴더가 있을 수도 있습니다. 사용자가 폴더의 getSize()를 호출하면 폴더 안의 모든 파일과 하위 폴더의 크기를 재귀적으로 합산합니다. 파일이든 폴더든 똑같은 인터페이스(컴포넌트)로 취급하기 때문에 처리가 매우 단순해집니다.
컴포짓 패턴은 단일 객체와 복합 객체를 동일하게 다룰 수 있도록 트리 구조로 구성합니다.