题
有没有在递归场景中使用访问者模式什么优势?如果这样,可以在编程演示一下?
解决方案
如何遍历二叉树?例如
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);
}
}
}
其他提示
我认为主要的好处是,它仅需要对集合1级深的迭代。它可以调用后面,但至少accept()方法将是干净的。
不隶属于 StackOverflow