Использовал ли паттерн Стратегия (Strategy)

Python Senior Без компании
Использовал ли паттерн Стратегия (Strategy)
Ответы
Да, паттерн Стратегия полезен, когда нужно выбирать алгоритм во время выполнения или иметь несколько взаимозаменяемых вариантов поведения. **Пример:** ``` from abc import ABC, abstractmethod class PaymentStrategy(ABC): @abstractmethod def pay(self, amount): pass class CreditCardPayment(PaymentStrategy): def pay(self, amount): print(f"Paid {amount} via Credit Card") class PayPalPayment(PaymentStrategy): def pay(self, amount): print(f"Paid {amount} via PayPal") class PaymentContext: def __init__(self, strategy: PaymentStrategy): self._strategy = strategy def execute_payment(self, amount): self._strategy.pay(amount) # Использование credit_card = CreditCardPayment() paypal = PayPalPayment() context = PaymentContext(credit_card) context.execute_payment(100) # Paid 100 via Credit Card context = PaymentContext(paypal) context.execute_payment(200) # Paid 200 via PayPal ``` **Плюсы:** - Гибкость — можно менять стратегии на лету. - Изолирует код алгоритмов от клиентского кода. - Упрощает добавление новых стратегий. **Минусы:** - Усложнение кода, если стратегий мало или они редко меняются. - Клиент должен знать о различиях стратегий.