Sobes.tech
Junior — Middle

Aký vzor návrhu by ste použili na prispôsobenie správania objektu v závislosti od denného času?

sobes.tech AI

Odpoveď od AI

Pre prispôsobenia správania objektu v závislosti od dennej doby je veľmi vhodný návrhový vzor "Stratégia".

Myšlienka je, že máte spoločné rozhranie správania a konkrétne implementácie (stratégie) sa menia v závislosti od dennej doby — napríklad ranné, denné a večerné stratégie.

Príklad v Jave:

interface Behavior {
    void execute();
}

class MorningBehavior implements Behavior {
    public void execute() {
        System.out.println("Dobré ráno!");
    }
}

class EveningBehavior implements Behavior {
    public void execute() {
        System.out.println("Dobrý večer!");
    }
}

class Context {
    private Behavior behavior;

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

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

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

Tento prístup umožňuje ľahko meniť správanie objektu bez nutnosti upravovať jeho kód.