Junior — Middle
Kokį projektavimo šabloną naudotumėte, kad pritaikytumėte objekto elgseną priklausomai nuo dienos laiko?
sobes.tech AI
Atsakymas iš AI
Norint pritaikyti objekto elgesį priklausomai nuo dienos laiko, labai tinkamas yra "Strategijos" dizaino šablonas.
Idėja ta, kad turite bendrą elgesio sąsają, o konkrečios įgyvendinimai (strategijos) keičiasi priklausomai nuo dienos laiko — pavyzdžiui, rytinės, dienos ir vakarinės strategijos.
Pavyzdys Java kalba:
interface Behavior {
void execute();
}
class MorningBehavior implements Behavior {
public void execute() {
System.out.println("Labas rytas!");
}
}
class EveningBehavior implements Behavior {
public void execute() {
System.out.println("Labas vakaras!");
}
}
class Context {
private Behavior behavior;
public void setBehavior(Behavior behavior) {
this.behavior = behavior;
}
public void performBehavior() {
behavior.execute();
}
}
// Naudojimas:
Context context = new Context();
LocalTime now = LocalTime.now();
if (now.isBefore(LocalTime.NOON)) {
context.setBehavior(new MorningBehavior());
} else {
context.setBehavior(new EveningBehavior());
}
context.performBehavior();
Šis požiūris leidžia lengvai keisti objekto elgesį be jo kodo keitimo.