Skip to content

Latest commit

 

History

History
25 lines (16 loc) · 1.62 KB

composite.md

File metadata and controls

25 lines (16 loc) · 1.62 KB

Компоновщик

На основе этой статьи

Суть паттерна - представление иерархии объектов в виде дерева и работа с ними как с одним объектом.

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

Пример компоновщика

Решение: Отнаследнуем и Коробку, и Продукт от одного общего интерфейса - вернуть цену. Продукт просто возвращает свою стоимость, а Коробка проходит по всем вложенным объектам и возвращает сумму стоимости всех вложенных объектов.

Основная идея

В общем случае реализация паттерна выглядит следующим образом:

Реализация

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

Отношение к другим паттернам: будет написано после освоения этих самих паттернов