Sobes.tech
Junior — Middle
105

Декоратор паттернінің тұжырымдамасын және оның бағдарламалық жүйелердің дизайнындағы артықшылығын түсіндіріңіз.

AI-дан жауап

sobes.tech AI

Decorator үлгісі объектілерге жаңа міндеттерді динамикалық түрде қосуға мүмкіндік береді, оларды сол интерфейсті жүзеге асыратын басқа декоратор объектілеріне орайды. Бұл мұрагерліктің орнына функционалдылықты кеңейту үшін балама.

Артықшылықтары:

  • Икемділік: декораторларды әртүрлі тәртіпте және санында біріктіруге болады.
  • Мұрагерлікте класс санының күрт өсуін болдырмайды.
  • Орындау кезінде мінез-құлықты қосуға мүмкіндік береді.

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

Мұнда MilkDecorator негізгі кофе бағасына сүттің құнын қосады.