有没有在递归场景中使用访问者模式什么优势?如果这样,可以在编程演示一下?

有帮助吗?

解决方案

如何遍历二叉树?例如

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()方法将是干净的。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top