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.