modello visitatori e ricorsione
-
06-09-2019 - |
Domanda
C'è qualche vantaggio per l'utilizzo di modello visitatore in uno scenario ricorsiva? Se così si può dimostrare a livello di codice?
Soluzione
Che ne dite di attraversare un albero binario? per esempio.
private class NodeVisitor{
public void visit(VisitableNode<T> node){
if (node!=null) {
print node.data;
}
}
}
public class VisitableTree<T> {
private VisitableNode<T> root;
public void printNodes(){
new NodeVisitor.visit(root);
}
private class VisitableNode<T> {
T data;
VisitableNode<T> left;
VisitableNode<T> right;
public void visit(NodeVisitor<T> visitor){
..do something
visitor.visit(left);
visitor.visit(right);
}
}
}
Altri suggerimenti
Credo che il vantaggio principale è che richiede solo iterazioni oltre collezioni 1 livello profondo. Si può richiamare, ma almeno la accetta () metodo sarà pulita.
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow