Sobes.tech
Junior — Middle

Qual padrão de design você usaria para adaptar o comportamento de um objeto dependendo da hora do dia?

sobes.tech IA

Resposta da IA

Para adaptar o comportamento de um objeto dependendo da hora do dia, o padrão de projeto "Estratégia" é bastante adequado.

A ideia é que você tenha uma interface de comportamento comum, e implementações específicas (estratégias) que mudam dependendo da hora do dia — por exemplo, estratégias matutinas, diurnas e vespertinas.

Exemplo em Java:

interface Behavior {
    void execute();
}

class MorningBehavior implements Behavior {
    public void execute() {
        System.out.println("Bom dia!");
    }
}

class EveningBehavior implements Behavior {
    public void execute() {
        System.out.println("Boa noite!");
    }
}

class Context {
    private Behavior behavior;

    public void setBehavior(Behavior behavior) {
        this.behavior = behavior;
    }

    public void performBehavior() {
        behavior.execute();
    }
}

// Uso:
Context context = new Context();
LocalTime now = LocalTime.now();
if (now.isBefore(LocalTime.NOON)) {
    context.setBehavior(new MorningBehavior());
} else {
    context.setBehavior(new EveningBehavior());
}
context.performBehavior();

Este método permite alterar facilmente o comportamento do objeto sem modificar seu código.