Junior — Middle
Μπορείτε να εξηγήσετε τι είναι το μοτίβο διακοσμητή και ποιο είναι το βασικό του νόημα;
sobes.tech AI
Απάντηση από AI
Το μοτίβο «Decorator» επιτρέπει την δυναμική προσθήκη νέων ευθυνών σε αντικείμενα, τυλίγοντάς τα σε άλλα αντικείμενα διακοσμητές χωρίς να αλλάζει η αρχική κλάση.
Η κύρια ιδέα είναι να δημιουργηθεί ένα περίβλημα γύρω από το αντικείμενο που υλοποιεί την ίδια διεπαφή και μπορεί να εκτελέσει πρόσθετη λογική πριν ή μετά την κλήση των μεθόδων του αρχικού αντικειμένου.
Αυτό είναι χρήσιμο όταν θέλετε να επεκτείνετε τη λειτουργικότητα χωρίς να κληρονομήσετε ή να αλλάξετε τον υπάρχοντα κώδικα.
Παράδειγμα σε ψευδοκώδικα:
interface Coffee {
double cost();
}
class SimpleCoffee implements Coffee {
public double cost() { return 5; }
}
class MilkDecorator implements Coffee {
private Coffee coffee;
public MilkDecorator(Coffee coffee) { this.coffee = coffee; }
public double cost() { return coffee.cost() + 2; }
}
// Χρήση:
Coffee coffee = new MilkDecorator(new SimpleCoffee());
System.out.println(coffee.cost()); // 7
Έτσι, ο διακοσμητής επιτρέπει την ευέλικτη προσθήκη λειτουργικότητας σε αντικείμενα κατά την εκτέλεση.