Sobes.tech
Junior — Middle

Vysvetlite koncept vzoru Decorator a akú výhodu má v návrhu softvérových systémov.

sobes.tech AI

Odpoveď od AI

Vzor Decorator umožňuje dynamicky pridávať novú zodpovednosť objektom tým, že ich obalí do iných dekorátorov, ktoré implementujú ten istý rozhranie. Je to alternatíva k dedičstvu na rozšírenie funkčnosti.

Výhody:

  • Flexibilita: dekorátory je možné kombinovať v rôznych poradí a množstvách.
  • Vyhýba sa explozívnemu rastu tried kvôli dedičstvu.
  • Umožňuje pridávať správanie počas behu.

Príklad v JavaScripte (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

Tu MilkDecorator pridáva cenu mlieka k základnej káve.