Junior — Middle
¿Puedes explicar en qué consiste el patrón decorador y cuál es su significado principal?
sobes.tech AI
Respuesta de la IA
El patrón «Decorador» permite agregar dinámicamente nuevas responsabilidades a los objetos, envolviéndolos en otros objetos decoradores sin modificar la clase original.
La idea principal es crear un envoltorio alrededor del objeto que implemente la misma interfaz y pueda realizar lógica adicional antes o después de llamar a los métodos del objeto original.
Esto es útil cuando se necesita ampliar la funcionalidad sin heredar ni modificar el código existente.
Ejemplo en pseudocódigo:
interface Coffee {
double cost();
}
class SimpleCoffee implements Coffee {
public double cost() { return 5; }
}
class MilkDecorator implements Coffee {
private Coffee coffee;
public MilkDecorator(Coffee coffee) { this.coffee = coffee; }
public double cost() { return coffee.cost() + 2; }
}
// Uso:
Coffee coffee = new MilkDecorator(new SimpleCoffee());
System.out.println(coffee.cost()); // 7
De esta manera, el decorador permite agregar funcionalidad a los objetos de manera flexible en tiempo de ejecución.