EMZETT.
Увійти

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

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

Докладніше: Замість довгих ланцюжків if/else чи switch об’єкту передають «стратегію», що виконує справжню роботу, — наприклад, різні розрахунки сортування, ціни чи вартості доставки. Нові стратегії додаються без зміни наявного коду (принцип відкритості/закритості, див. SOLID).

Подробиці

def no_discount(price):       return

Див. також: SOLID, поліморфізм, патерн «Фабрика», патерн «Спостерігач»