Встречается на собеседованиях • сегодня
Какой паттерн использовал бы для изменения поведения объекта в зависимости от времени суток
Стратегия (Strategy) — идеальный выбор. Он позволяет инкапсулировать алгоритмы в отдельные классы и динамически менять их во время выполнения.
Пример:
java
interface TimeStrategy {
void execute();
}
class MorningStrategy implements TimeStrategy {
public void execute() {
System.out.println("Good morning!");
}
}
class EveningStrategy implements TimeStrategy {
public void execute() {
System.out.println("Good evening!");
}
}
class Context {
private TimeStrategy strategy;
text
public void setStrategy(TimeStrategy strategy) {
this.strategy = strategy;
}
public void greet() {
strategy.execute();
}}
// Использование:
Context context = new Context();
if (isMorning()) {
context.setStrategy(new MorningStrategy());
} else {
context.setStrategy(new EveningStrategy());
}
context.greet();
text
Плюсы:
- Гибкость (легко добавить новые стратегии)
- Отсутствие условных операторов в основном коде
- Соответствует Open/Closed Principle
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
офферы быстрее!
Попробовать бесплатно
Следующий вопрос
Это единственный вопрос по вашему фильтру
как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы