Quote Originariamente inviata da Gas75 Visualizza il messaggio
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.
Ok ma forse non mi sono spiegato bene.

Nel main fai:
codice:
        Libro libro = new Libro("Il segno del comando", 7.99);
        DVD dvd = new DVD("Il mistero dei Templari", 12.10);
        Carrello carrello = new Carrello();
        carrello.add(libro);
        carrello.add(dvd);

Quindi ora i due articoli li stai aggiungendo nell'oggetto Carrello.
codice:
        CarrelloTotale carrelloTotale = new CarrelloTotale(carrello);
        carrelloTotale.getTitoli();
        System.out.println("Totale = " + carrelloTotale.getTotale());

Qui stai passando il Carrello al CarrelloTotale. Ma attenzione, come dicevo prima, il Carrello NON LO USI (perlomeno per quanto ho visto postato) in CarrelloTotale.
Quindi i visita() di CarrelloTotale NON sono stati invocati, pertanto il getTotale() non può trovare nulla.

E comunque questa dualità Carrello e CarrelloTotale non ha molto senso ...