Sobes.tech
Junior — Middle

Decorator naqshining konseptini tushuntiring va uning dasturiy tizimlar dizaynidagi afzalliklarini.

sobes.tech AI

AIdan javob

Decorator naqshı ob'ektlarga dinamik tarzda yangi mas'uliyatlar qo'shishga imkon beradi, ularni bir xil interfeysni amalga oshiradigan boshqa dekorator ob'ektlariga o'rab, funksionallikni kengaytirish uchun alternativ hisoblanadi.

Afzalliklar:

  • Moslashuvchanlik: dekoratorlar turli tartibda va miqdorda birlashtirilishi mumkin.
  • Meros olish orqali sinflarning portlashini oldini oladi.
  • Ish vaqtida xulq-atvor qo'shishga imkon beradi.

JavaScript (Node.js) misoli:

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

Bu yerda MilkDecorator asosiy kofe narxiga sut narxini qo'shadi.