Junior — Middle
Εξηγήστε την έννοια του μοτίβου Decorator και ποιο είναι το πλεονέκτημά του στον σχεδιασμό συστημάτων λογισμικού.
sobes.tech AI
Απάντηση από AI
Το μοτίβο Decorator επιτρέπει την δυναμική προσθήκη νέων ευθυνών σε αντικείμενα, περικλείοντάς τα σε άλλα αντικείμενα διακοσμητές που υλοποιούν το ίδιο interface. Είναι μια εναλλακτική λύση στην κληρονομικότητα για την επέκταση της λειτουργικότητας.
Πλεονεκτήματα:
- Ευελιξία: οι διακοσμητές μπορούν να συνδυαστούν σε διαφορετικές σειρές και ποσότητες.
- Αποφεύγει την εκρηκτική αύξηση των κλάσεων μέσω κληρονομικότητας.
- Επιτρέπει την προσθήκη συμπεριφοράς κατά την εκτέλεση.
Παράδειγμα σε JavaScript (Node.js):
class Coffee {
cost() { return 5; }
}
class MilkDecorator {
constructor(coffee) { this.coffee = coffee; }
cost() { return this.coffee.cost() + 2; }
}
const simpleCoffee = new Coffee();
const milkCoffee = new MilkDecorator(simpleCoffee);
console.log(milkCoffee.cost()); // 7
Εδώ, το MilkDecorator προσθέτει το κόστος του γάλακτος στον βασικό καφέ.