Calcolatrice (Albero): implementazione utilizzando il pattern Visitor File: Calcolatrice.java Expr.java Visitor.java Convertitore.java Interprete.java Utilizza inoltre il file ParserEspressioni.java, identico alla versione che non utilizza il pattern Visitor. Questa implementazione appare un po' piu' difficile, ma e' piu' elegante e flessibile. La classe Interprete, che implementa l'interfaccia Visitor, definisce le operazioni per calcolare l'espressione. La classe Convertitore, implementa Visitor, e definisce le operazioni per ottenere la notazione postfissa. Volendo associare un nuova funzionalita' all'albero, e' sufficiente fornire una nuova classe che implementi Visitor (nella versione precedente era necessario modificare la definizione dell'albero, definendo un nuovo metodo astratto in Expr e la sua implementazione in ciascuna delle sottoclassi). In questo modo la classe che definisce l'albero e' indipendente dagli usi che ne vengono fatti. Per maggiori dettagli vedere: Appel, Modern Compiler Implementation in Java, 2nd edition, Cambridge University Press 2002, pp. 93-97.