Sobes.tech
Junior — Middle

Puoi spiegare in cosa consiste il pattern decoratore e qual è il suo significato principale?

sobes.tech AI

Risposta dell'AI

Il pattern «Decoratore» consente di aggiungere dinamicamente nuove responsabilità agli oggetti, avvolgendoli in altri oggetti decoratori senza modificare la classe originale.

L’idea principale è creare un involucro attorno all’oggetto che implementa la stessa interfaccia e può eseguire logica aggiuntiva prima o dopo la chiamata ai metodi dell’oggetto originale.

Questo è utile quando si desidera espandere la funzionalità senza ereditare o modificare il codice esistente.

Esempio in pseudocodice:

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

In questo modo, il decoratore permette di aggiungere funzionalità agli oggetti in modo flessibile durante l’esecuzione.