Junior — Middle
Kunt u uitleggen wat het decoratormodel is en wat de belangrijkste betekenis ervan is?
sobes.tech AI
Antwoord van AI
Het «Decorator»-patroon maakt het mogelijk om op dynamische wijze nieuwe verantwoordelijkheden aan objecten toe te voegen door ze in andere decoratordobjecten te wikkelen, zonder de oorspronkelijke klasse te wijzigen.
Het belangrijkste idee is om een omhulsel rond het object te creëren dat hetzelfde interface implementeert en extra logica kan uitvoeren vóór of na het aanroepen van de methoden van het oorspronkelijke object.
Dit is handig wanneer je functionaliteit wilt uitbreiden zonder te erven of de bestaande code te wijzigen.
Voorbeeld in pseudocode:
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; }
}
// Gebruik:
Coffee coffee = new MilkDecorator(new SimpleCoffee());
System.out.println(coffee.cost()); // 7
Op deze manier maakt de decorator het mogelijk om op flexibele wijze functionaliteit aan objecten toe te voegen tijdens de uitvoering.