Visitorパターンと再帰
-
06-09-2019 - |
質問
再帰的なシナリオでは、訪問者のパターンを使用するためのいずれかの利点がありますか?もしそうなら、あなたはプログラムでそれを証明することができますか?
解決
どのようにバイナリツリーをトラバースは?例えば
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つのレベルの深さのコレクションを超える反復を必要とすることであると思います。これは、コールバックすることができますが、少なくとも受け入れる()メソッドは、きれいになります。
所属していません StackOverflow