Back to questions
СБЕР
Junior — Middle
57
Какой шаблон проектирования вы бы применили, чтобы адаптировать поведение объекта в зависимости от времени дня?
Companies where asked
Answer from AI
sobes.tech AI
Для адаптации поведения объекта в зависимости от времени дня хорошо подходит шаблон проектирования "Стратегия" (Strategy).
Идея в том, что у вас есть общий интерфейс поведения, а конкретные реализации (стратегии) меняются в зависимости от времени суток — например, утренняя, дневная и вечерняя стратегии.
Пример на Java:
interface Behavior {
void execute();
}
class MorningBehavior implements Behavior {
public void execute() {
System.out.println("Доброе утро!");
}
}
class EveningBehavior implements Behavior {
public void execute() {
System.out.println("Добрый вечер!");
}
}
class Context {
private Behavior behavior;
public void setBehavior(Behavior behavior) {
this.behavior = behavior;
}
public void performBehavior() {
behavior.execute();
}
}
// Использование:
Context context = new Context();
LocalTime now = LocalTime.now();
if (now.isBefore(LocalTime.NOON)) {
context.setBehavior(new MorningBehavior());
} else {
context.setBehavior(new EveningBehavior());
}
context.performBehavior();
Такой подход позволяет легко менять поведение объекта без изменения его кода.