Sobes.tech
Junior — Middle

Decorator паттернин концепциясын түшүндүрүп бериңиз жана анын программалык системалардын дизайнындагы артыкчылыгы эмне.

sobes.tech AI

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 негизги кофе баасына сүттүн баасын кошот.