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

Работал ли с паттерном Strategy

Да, работал. Strategy — это поведенческий паттерн, который позволяет выбирать алгоритм во время выполнения программы, инкапсулируя их в отдельные классы.

Пример:

javascript
class PaymentStrategy {
  pay(amount) {
    throw new Error('Метод pay должен быть реализован');
  }
}

class CreditCardPayment extends PaymentStrategy {
  pay(amount) {
    console.log(`Оплачено ${amount} через кредитную карту`);
  }
}

class PayPalPayment extends PaymentStrategy {
pay(amount) {
console.log(Оплачено ${amount} через PayPal);
}
}

class ShoppingCart {
constructor() {
this.strategy = null;
}

setStrategy(strategy) {
this.strategy = strategy;
}

checkout(amount) {
this.strategy.pay(amount);
}
}

const cart = new ShoppingCart();
cart.setStrategy(new CreditCardPayment());
cart.checkout(100); // "Оплачено 100 через кредитную карту"

text

**Плюсы:**  
- Гибкость — можно менять алгоритмы на лету.  
- Избегание условных операторов (if/else).  
- Соблюдение Open/Closed Principle.  

**Минусы:**  
- Усложнение кода из-за дополнительных классов.  
- Клиент должен знать о разных стратегиях.  

Используется, например, для выбора способа оплаты, сортировки или валидации.
Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

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

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

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