cerza
14-05-2015, 16:19
Ciao a tutti,
ho necessità di imparare ad usare i pattern composite e visitor.
Ho nel composite delle foglie con il nome e dei nodi intermedi, anche questi con dei nomi; i nodi intermedi hanno una lista di nodiFoglie.
Vorrei poter stampare la struttura indentata ma non riesco a capire come fare, qualcuno sa dirmi dove posso trovare esempio simili, per comprendere il funzionamento.
Inoltre inserisco il codice del visitor che ho fatto, ma che non funziona perchè produce la stampa di foglia, radice, e tutte le foglie restanti
private String tab = "";
public void visitaNodoFoglia(NodoFoglia nodoFoglia) {
logger.info(tab + nodoFoglia.getNome());
}
public void visitaNodoIntermedio(NodoIntermedio nodoIntermedio) {
for (INodo nodo : nodoIntermedio.getListaFigli()) {
tab += "\t";
nodo.accept(this);
logger.info(tab + nodo.getNome());
}
Anche i rientri non funzionano correttamente, perchè adesso inserisce un rientro in più per ogni figlio.
Grazie a tutti
ho necessità di imparare ad usare i pattern composite e visitor.
Ho nel composite delle foglie con il nome e dei nodi intermedi, anche questi con dei nomi; i nodi intermedi hanno una lista di nodiFoglie.
Vorrei poter stampare la struttura indentata ma non riesco a capire come fare, qualcuno sa dirmi dove posso trovare esempio simili, per comprendere il funzionamento.
Inoltre inserisco il codice del visitor che ho fatto, ma che non funziona perchè produce la stampa di foglia, radice, e tutte le foglie restanti
private String tab = "";
public void visitaNodoFoglia(NodoFoglia nodoFoglia) {
logger.info(tab + nodoFoglia.getNome());
}
public void visitaNodoIntermedio(NodoIntermedio nodoIntermedio) {
for (INodo nodo : nodoIntermedio.getListaFigli()) {
tab += "\t";
nodo.accept(this);
logger.info(tab + nodo.getNome());
}
Anche i rientri non funzionano correttamente, perchè adesso inserisce un rientro in più per ogni figlio.
Grazie a tutti