Встречается на собеседованиях • сегодня

Какие плюсы и минусы у паттерна стратегия

Плюсы:

  • Устраняет условные операторы, заменяя их полиморфизмом
  • Позволяет легко добавлять новые стратегии без изменения клиентского кода
  • Изолирует логику алгоритмов в отдельные классы
  • Упрощает тестирование (каждую стратегию можно тестировать отдельно)

Минусы:

  • Увеличивает количество классов в кодовой базе
  • Клиент должен знать о существовании стратегий
  • Может быть избыточным для простых алгоритмов

Пример:

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)
Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

Следующий вопрос

Это единственный вопрос по вашему фильтру

как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы