Sobes.tech
Назад к вопросам
Junior — Middle
102

Каково назначение и применение паттерна Decorator в программировании?

Ответ от нейросети

sobes.tech AI

Паттерн Decorator позволяет динамически добавлять объектам новые обязанности, оборачивая их в другие объекты-декораторы, не изменяя исходный класс.

Это полезно, когда нужно расширить функциональность без создания большого количества подклассов.

Пример применения в 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

Таким образом, паттерн позволяет гибко комбинировать поведение объектов во время выполнения.