Back to questions
Junior — Middle
101
Каково назначение и применение паттерна Decorator в программировании?
Answer from AI
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
Таким образом, паттерн позволяет гибко комбинировать поведение объектов во время выполнения.