Sobes.tech
Junior — Middle

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

sobes.tech AI

Отговор от AI

За адаптиране на поведението на обект в зависимост от времето на деня, шаблонът за дизайн "Стратегия" е много подходящ.

Идеята е, че имате общ интерфейс за поведение, а конкретните реализации (стратегии) се променят в зависимост от времето — например, сутрешни, дневни и вечерни стратегии.

Пример на 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();

Този подход позволява лесно да променяте поведението на обекта без да променяте неговия код.