Composite es un patrón de diseño estructural que permite componer objetos en una estructura en forma de árbol y trabajar con ella como si fuera un objeto único.
El patrón Composite se convirtió en una solución muy popular para la mayoría de problemas que requieren la creación de una estructura de árbol. La gran característica del Composite es la capacidad para ejecutar métodos de forma recursiva por toda la estructura de árbol y recapitular los resultados.
Vamos a intentar imaginar el patrón Composite con un ejemplo de un sistema de archivos del sistema operativo. En el sistema de archivos hay dos tipos de objetos: archivos y carpetas. Hay casos en los que archivos y carpetas deben tratarse de la misma manera. Aquí es donde el patrón Composite resulta de utilidad.
Imagina que tienes que realizar una búsqueda de una palabra clave particular en tu sistema de archivos. Esta operación de búsqueda se aplica tanto a archivos como a carpetas. Para un archivo, buscará en los contenidos del archivo; para una carpeta, recorrerá todos los archivos de la carpeta para encontrar la palabra clave.