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.