Обзор паттернов проектирования

       

Стратегия (Strategy) - GoF


Проблема Спроектировать изменяемые, но надежные алгоритмы или стратегии.
Решение Определить для каждого алгоритма или стратегии отдельный класс со стандартным интерфейсом.
Пример Обеспечение сложной логики вычисления стоимости товаров с учетом сезонных скидок, скидок постоянным клиентам и т. п. Данная стратегия может изменяться.

Создается несколько классов "Стратегия", каждый из которых содержит один и тот же полиморфный метод "ЦенаРассчитать". В качестве параметров в этот метод передаются данные о продаже. Объект стратегии связывается с контекстным объектом (тем объектом, к которому применяется алгоритм).



Содержание раздела