Встречается на 1% собеседований по Python
Какие плюсы и минусы у паттерна стратегия
Плюсы:
- Устраняет условные операторы, заменяя их полиморфизмом
- Позволяет легко добавлять новые стратегии без изменения клиентского кода
- Изолирует логику алгоритмов в отдельные классы
- Упрощает тестирование (каждую стратегию можно тестировать отдельно)
Минусы:
- Увеличивает количество классов в кодовой базе
- Клиент должен знать о существовании стратегий
- Может быть избыточным для простых алгоритмов
Пример:
python
class PaymentStrategy:
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)
# Использование
context = PaymentContext(CreditCardPayment())
context.execute_payment(100)
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
офферы быстрее!
Попробовать бесплатно
Следующий вопрос
Это единственный вопрос по вашему фильтру
Похожие вопросы
как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы