Встречается на собеседованиях • сегодня
Работал ли с паттерном 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.
**Минусы:**
- Усложнение кода из-за дополнительных классов.
- Клиент должен знать о разных стратегиях.
Используется, например, для выбора способа оплаты, сортировки или валидации.
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
офферы быстрее!
Попробовать бесплатно
Следующий вопрос
Это единственный вопрос по вашему фильтру
как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы