Компоновщик (Composite) - GoF
Проблема | Как обрабатывать группу или композицию структур обьектов одновременно? |
Решение | Определить классы для композитных и атомарных обьектов таким образом, чтобы они реализовывали один и тот же интерфейс. |
Пример | См. паттерн "Стратегия", 3.2.9, необходимо учесть несколько скидок различных видов (зависят от времени, типа покупателя, типом выбранного продукта. Как применять политику ценообразования? Вырабатывается стратегия приоритета скидок, объект "Продажа" не должен обладать информацией о применяемых скидках, но можно было бы применить стратегию расчета скидок. Создается новый класс "РасчетСкидкиАлгоритмКомпозит". |