Паттерн «Компоновщик» (Composite) решает задачу иерархической структуры в объектно-ориентированном программировании путём объединения объектов в древовидную структуру по принципу «часть-целое». 5
Он позволяет клиентам обращаться к отдельным объектам и к группам объектов одинаково. 1 Паттерн определяет иерархию классов, которые одновременно могут состоять из примитивных и сложных объектов, упрощает архитектуру клиента и делает процесс добавления новых видов объекта более простым. 2
Пример: с помощью паттерна «Компоновщик» можно создать объект файловой системы, где каждую папку составляют вложенные папки и файлы. 5 В этом случае с вложенными папками можно работать так же, как и с папками, которые их содержат. 5