Sobes.tech
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.