Junior — Middle
Leg het concept van het Decorator-patroon uit en wat het voordeel ervan is in het ontwerp van softwaresystemen.
sobes.tech AI
Antwoord van AI
Het Decorator-patroon stelt je in staat om dynamisch nieuwe verantwoordelijkheden aan objecten toe te voegen door ze te omhullen in andere decorator-objecten die hetzelfde interface implementeren. Het is een alternatief voor erfelijkheid om functionaliteit uit te breiden.
Voordelen:
- Flexibiliteit: decorators kunnen in verschillende volgordes en hoeveelheden worden gecombineerd.
- Vermijdt explosieve groei van klassen door erfelijkheid.
- Maakt het mogelijk om gedrag tijdens runtime toe te voegen.
Voorbeeld in 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
Hier voegt MilkDecorator de melkprijs toe aan de basis koffie.