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();
Този подход позволява лесно да променяте поведението на обекта без да променяте неговия код.