Junior — Middle
Selgitage Decorator-mustri kontseptsiooni ja millist eeliseid see pakub tarkvarasüsteemide disainis.
sobes.tech AI
Vastus AI-lt
Decorator muster võimaldab dünaamiliselt lisada objektidele uusi vastutusi, neid ümbritsedes teistesse dekoratsioonidesse, mis implementeerivad sama liidest. See on alternatiiv pärandile funktsionaalsuse laiendamiseks.
Eelised:
- Paindlikkus: dekoratsioone saab kombineerida erinevates järjekordades ja kogustes.
- Vältib klasside plahvatuslikku kasvu pärandamise tõttu.
- Lubab lisada käitumist jooksvalt.
Näide JavaScriptis (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
Siin lisab MilkDecorator piima hinna põhikohvile.