Junior — Middle
Ποιο μοτίβο σχεδίασης θα χρησιμοποιούσατε για να προσαρμόσετε τη συμπεριφορά ενός αντικειμένου ανάλογα με την ώρα της ημέρας;
sobes.tech AI
Απάντηση από AI
Για την προσαρμογή της συμπεριφοράς ενός αντικειμένου ανάλογα με την ώρα της ημέρας, το μοτίβο σχεδίασης "Στρατηγική" είναι πολύ κατάλληλο.
Η ιδέα είναι ότι έχετε μια κοινή διεπαφή συμπεριφοράς, και υλοποιήσεις (στρατηγικές) που αλλάζουν ανάλογα με την ώρα της ημέρας — για παράδειγμα, στρατηγικές πρωινές, μεσημεριανές και βραδινές.
Παράδειγμα σε Java:
interface Behavior {
void execute();
}
class MorningBehavior implements Behavior {
public void execute() {
System.out.println("Καλημέρα!");
}
}
class EveningBehavior implements Behavior {
public void execute() {
System.out.println("Καληνύχτα!");
}
}
class Context {
private Behavior behavior;
public void setBehavior(Behavior behavior) {
this.behavior = behavior;
}
public void performBehavior() {
behavior.execute();
}
}
// Χρήση:
Context context = new Context();
LocalTime now = LocalTime.now();
if (now.isBefore(LocalTime.NOON)) {
context.setBehavior(new MorningBehavior());
} else {
context.setBehavior(new EveningBehavior());
}
context.performBehavior();
Αυτή η προσέγγιση επιτρέπει την εύκολη αλλαγή της συμπεριφοράς του αντικειμένου χωρίς να τροποποιείται ο κώδικάς του.