Sobes.tech
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.