Mi è stata posta una domanda di progettazione teorica con un occhio sui modelli GoF.:
"Dato un progetto per un albero che utilizza un modello di visitatore standard, come apparirà il tuo design per consentire all'utente di scegliere tra om pre-order, in-order o traversali post-ordine?"
Sto pensando di lasciare che sia il visitatore, ma di dare l'attraversamento a un oggetto Iterator seguendo il Pattern Iterator.
L'idea sarebbe quella di implementare 3 iteratori che consentano l'attraversamento desiderato. Hanno un'interfaccia e il visitatore ha solo bisogno di interagire con questa interfaccia, fornendosi come argomento per l'iteratore che fornisce l'attraversamento. L'utente può scegliere quale iteratore usare quando ne dà uno al visitatore.
Questo suona come una soluzione elegante? Qualche idea migliore?