Il programma era partito con lo scopo di confrontare il totale calcolato in modo "tradizionale" e col pattern Visitor, poi ho pensato di modificarlo togliendo il calcolo del totale "tradizionale" e aggiungendo alla modalità col pattern l'elenco degli elementi acquistati.
Nel main ci sarebbe infatti anche
Carrello.java eccolo qua:codice:System.out.println("Totale = " + carrello.getTotale());
Il pattern non c'entra col problema, infatti nel titolo della discussione parlo dell'add() di ArrayList.codice:import java.util.List; import java.util.ArrayList; class Carrello { private List<ElementiCarrello> elementi; public Carrello() { elementi = new ArrayList<>(); } public void add(ElementiCarrello elemento) { elementi.add(elemento); } // funziona ma poco "realistico", si complica se si vogliono introdurre offerte su alcuni tipi di articoli public double getTotale() { double totale = 0.0; for (ElementiCarrello e : elementi) { totale += e.getPrezzo(); // da Libro.java e DVD.java } return totale; } public List<ElementiCarrello> getElementi() { return elementi; } }
Il pattern è stato il pretesto per produrre questo codice, il discorso pattern sarebbe esaurito se riuscissi a passare i titoli oltre ai prezzi.


Rispondi quotando
