E cosa fa Carrello? Non l'hai postato.
Inoltre considera che in CarrelloTotale l'oggetto Carrello che il costruttore riceve poi NON viene usato.
codice:class CarrelloTotale implements Visitor { private double totale; private Carrello carrello; // ma poi questo NON viene usato nei metodi .... private ArrayList<String> titoli = new ArrayList<String>(); public CarrelloTotale(Carrello carrello) { // ok, riceve Carrello this.carrello = carrello; // ok, assegna il Carrello this.totale = 0.0; }
quindi?
Che c'entrano i pattern? Se ti riferisci all'approccio del Visitor in Libro/DVD, è solo un "girare" le chiamate in maniera differente. Ma in realtà non sarebbe nemmeno strettamente necessario.