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