Sobes.tech
Junior — Middle

Ce model de proiectare ai folosi pentru a adapta comportamentul unui obiect în funcție de ora zilei?

sobes.tech AI

Răspuns de la AI

Pentru a adapta comportamentul unui obiect în funcție de ora zilei, modelul de proiectare "Strategia" este foarte potrivit.

Ideea este că aveți o interfață comună de comportament, iar implementările specifice (strategiile) se schimbă în funcție de ora zilei — de exemplu, strategii matinale, de zi și de seară.

Exemplu în Java:

interface Behavior {
    void execute();
}

class MorningBehavior implements Behavior {
    public void execute() {
        System.out.println("Bună dimineața!");
    }
}

class EveningBehavior implements Behavior {
    public void execute() {
        System.out.println("Bună seara!");
    }
}

class Context {
    private Behavior behavior;

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

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

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

Această abordare permite schimbarea ușoară a comportamentului obiectului fără a modifica codul său.