EMZETT.
Войти

Паттерн «Стратегия» (Strategy)

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

Подробнее: Вместо длинных цепочек if/else или switch объекту передают «стратегию», выполняющую настоящую работу, — например, разные расчёты сортировки, цены или стоимости доставки. Новые стратегии добавляются без изменения существующего кода (принцип открытости/закрытости, см. SOLID).

Подробности

def no_discount(price):       return

См. также: SOLID, полиморфизм, паттерн «Фабрика», паттерн «Наблюдатель»