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.