Sobes.tech
Junior — Middle

Izskaidrojiet Decorator modeļa koncepciju un kāda ir tā priekšrocība programmatūras sistēmu dizainā.

sobes.tech AI

Atbilde no AI

Decorator paraugs ļauj dinamiski pievienot jaunas atbildības objektiem, ietverot tos citos dekoratora objektos, kas īsteno to pašu saskarni. Tas ir alternatīvs mantojumam funkcionalitātes paplašināšanai.

Priekšrocības:

  • Elastība: dekoratorus var kombinēt dažādos secīgos un daudzumos.
  • Novērš sprādzienbīstamu klases pieaugumu ar mantošanu.
  • Atļauj pievienot uzvedību izpildes laikā.

Piemērs JavaScript (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

Šeit MilkDecorator pievieno piena cenu pamata kafijai.