在递归场景中使用访问者模式有什么优势吗?如果是这样,您可以以编程方式演示它吗?
3723 次
2 回答
2
遍历二叉树怎么样?例如
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);
}
}
}
于 2009-04-08T18:10:09.523 回答
1
我认为主要的好处是它只需要对 1 级深度的集合进行迭代。它可以回调,但至少 accept() 方法是干净的。
于 2009-04-08T18:09:03.833 回答