Компоновщик (шаблон проектирования)

Эта статья находится на начальном уровне проработки, в одной из её версий выборочно используется текст из источника, распространяемого под свободной лицензией
Материал из энциклопедии Руниверсалис
Компоновщик
Composite
Тип структурный
Описан в Design Patterns Да

Компоновщик (англ. Composite pattern) — структурный шаблон проектирования, объединяющий объекты в древовидную структуру для представления иерархии от частного к целому. Компоновщик позволяет клиентам обращаться к отдельным объектам и к группам объектов одинаково.

Цель

Паттерн определяет иерархию классов, которые одновременно могут состоять из примитивных и сложных объектов, упрощает архитектуру клиента, делает процесс добавления новых видов объекта более простым.

Описание

UML-диаграмма шаблона:

Composite UML class diagram (fixed).svg

Примеры реализации

Пример на Java

Пример на C#

Пример на C++

Пример на D

Пример на Python

Пример на PHP5

Пример компоновщика с внешним итератором на PHP5

Пример на PHP5.4

Пример на CoffeeScript

Пример на VB.NET

Пример на Delphi

Пример на JavaScript

Пример на Swift

Ссылки