Sobes.tech
Назад к вопросам
Junior — Middle
56

Какой шаблон проектирования вы бы применили, чтобы адаптировать поведение объекта в зависимости от времени дня?

Компании, где спрашивали
СБЕРСБЕР

Ответ от нейросети

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();

Такой подход позволяет легко менять поведение объекта без изменения его кода.