Встречается на собеседованиях • сегодня
Какие плюсы и минусы у паттерна стратегия
Плюсы:
- Устраняет условные операторы, заменяя их полиморфизмом
- Позволяет легко добавлять новые стратегии без изменения клиентского кода
- Изолирует логику алгоритмов в отдельные классы
- Упрощает тестирование (каждую стратегию можно тестировать отдельно)
Минусы:
- Увеличивает количество классов в кодовой базе
- Клиент должен знать о существовании стратегий
- Может быть избыточным для простых алгоритмов
Пример:
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
интервью вопросы и ответы