私は自分のアプリケーションで多くのオブジェクト ツリーを作成します。ここで、各ノードは典型的なツリー ノード (親への参照と子への参照のリスト) です。これらのツリーは一時的なものです。つまり、アプリケーションが終了する前に破棄する可能性があります。
これまでのところ、ツリー ブランチを再帰的にトラバースして「破棄」できるメソッドを常にツリー ノード クラスに追加してきました (親参照を null に設定し、子リストをクリアするなど)。
public void destroy() {
for (Node node : children) {
node.destroy();
}
parent = null;
children.clear();
}
どこかに保存したツリーのルートへの参照を単純にnullするだけでは十分ではないため、これは常に私には理にかなっています. . これを想定してそのような方法を提供することは正しいですか?
私が自分自身を疑っている理由は、ツリー構造のサポートを提供する API でそのようなメソッドをめったに見ないからです (少なくともツリー ノード インターフェイスでは直接ではありません)。そのような場合に対処するための適切なパターンは何ですか?