Junior — Middle
Expliquez le concept du motif Decorateur et quel est son avantage dans la conception de systèmes logiciels.
sobes.tech IA
Réponse de l'IA
Le motif Decorator permet d'ajouter dynamiquement de nouvelles responsabilités aux objets, en les enveloppant dans d'autres objets décorateurs qui implémentent la même interface. C'est une alternative à l'héritage pour étendre la fonctionnalité.
Avantages:
- Flexibilité : il est possible de combiner les décorateurs dans différents ordres et quantités.
- Évite la croissance explosive des classes par héritage.
- Permet d'ajouter du comportement à l'exécution.
Exemple en 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
Ici, MilkDecorator ajoute le coût du lait au café de base.