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