Композиция — это структурный шаблон проектирования, позволяющий объединять объекты в древовидную структуру для представления иерархий часть-целое. Композиция дает возможность клиентам работать с отдельными объектами и их группами одинаково.
Ключевые элементы:
Пример: файловая система.
Component: общий интерфейс для "файлового элемента".Leaf: класс "Файл".Composite: класс "Папка". Папка может содержать как Файлы, так и другие Папки.Клиентский код может работать с любым "файловым элементом" (как с файлом, так и с папкой) через общий интерфейс Component, не зная его конкретного типа.
Преимущества:
Недостатки:
java