Sobes.tech
Junior — Middle

Jakiego wzorca projektowego użyłbyś, aby dostosować zachowanie obiektu w zależności od pory dnia?

sobes.tech AI

Odpowiedź od AI

Aby dostosować zachowanie obiektu w zależności od pory dnia, bardzo odpowiedni jest wzorzec projektowy "Strategia".

Pomysł polega na tym, że masz wspólny interfejs zachowania, a konkretne implementacje (strategie) zmieniają się w zależności od pory dnia — na przykład strategie poranne, dzienne i wieczorne.

Przykład w Java:

interface Behavior {
    void execute();
}

class MorningBehavior implements Behavior {
    public void execute() {
        System.out.println("Dzień dobry!");
    }
}

class EveningBehavior implements Behavior {
    public void execute() {
        System.out.println("Dobry wieczór!");
    }
}

class Context {
    private Behavior behavior;

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

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

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

Ten sposób pozwala na łatwą zmianę zachowania obiektu bez modyfikacji jego kodu.