Sobes.tech
Junior — Middle

Kunt u het concept en de toepassing van het Decorator-patroon in objectgeoriënteerd programmeren uitleggen?

sobes.tech AI

Antwoord van AI

Het Decorator-patroon stelt je in staat om dynamisch nieuwe verantwoordelijkheden aan objecten toe te voegen door ze in andere decorator-objecten te wikkelen, zonder de broncode van de klasse te wijzigen. Dit is vooral handig wanneer je functionaliteit wilt uitbreiden zonder overerving.

Voorbeeld: er is een basisinterface Drank met de methode kosten(). Je kunt een klasse Koffie maken en vervolgens decorateurs MetMelk, MetSuiker, die de kosten toevoegen en het gedrag aanpassen.

interface Drank {
    double kosten();
}

class Koffie implements Drank {
    public double kosten() { return 5.0; }
}

class MelkDecorator implements Drank {
    private Drank drank;
    public MelkDecorator(Drank drank) { this.drank = drank; }
    public double kosten() { return drank.kosten() + 1.0; }
}

// Gebruik
Drank koffie = new Koffie();
Drank koffieMetMelk = new MelkDecorator(koffie);
System.out.println(koffieMetMelk.kosten()); // 6.0

Op deze manier kun je functionaliteit flexibel combineren zonder veel subklassen te maken.