Junior — Middle
Qual é o propósito e a aplicação do padrão Decorator na programação?
sobes.tech IA
Resposta da IA
O padrão Decorator permite adicionar dinamicamente novas responsabilidades aos objetos, envolvendo-os em outros objetos decoradores sem alterar a classe original.
Isto é útil quando é necessário expandir a funcionalidade sem criar uma grande quantidade de subclasses.
Exemplo de uso em Node.js:
class Coffee {
cost() {
return 5;
}
}
class MilkDecorator {
constructor(coffee) {
this.coffee = coffee;
}
cost() {
return this.coffee.cost() + 2; // adiciona o custo do leite
}
}
const simpleCoffee = new Coffee();
const milkCoffee = new MilkDecorator(simpleCoffee);
console.log(milkCoffee.cost()); // 7
Dessa forma, o padrão permite combinar de forma flexível o comportamento dos objetos em tempo de execução.