Stai sviluppando un software per il menù di una pizzeria. Ogni pizza ha un prezzo base e una serie di aggiunte disponibili che l’utente può scegliere. Ogni aggiunta ha un prezzo opzionale diverso e le scelte sono molte e potenzialmente variabili nel tempo.
Descrivi quale design pattern useresti per risolvere il problema motivando la risposta. Fornisci anche una rappresentazione in codice, pseudo-codice o diagramma delle classi della soluzione proposta.
Soluzione
Come per l’oracolo, si può risolvere questo problema usando il Decorator. In questo modo è possibile aggiungere un numero illimitato di ingredienti senza modificare la classe base Pizza.
Esempio di implementazione
Output di esempio
Base pizza: Margherita - €5
Pizza with additions: Margherita + mushrooms - €6.5
Pizza with additions: Margherita + mushrooms + whole wheat - €8.5