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