Sobes.tech
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();

Αυτή η προσέγγιση επιτρέπει την εύκολη αλλαγή της συμπεριφοράς του αντικειμένου χωρίς να τροποποιείται ο κώδικάς του.