0
多形体のツリーを構築するコード(C#)があります。タイプに応じて、オブジェクトに0〜7の子がある場合があります。今、オブジェクトのコンストラクタは何もしない、と私は再帰的ヘルパー関数を使用して全体のオブジェクトツリーを構築する:オブジェクトのツリーを構築するためのパターンが必要です
// pseudocode
void BuildTree(Node root) {
if(root is A) {
root.a_data = ...
root.a_child = GenerateNewNode(some_constraints);
BuildTree(root.a_child)
} else if(root is B) {
// same stuff, for B. Note B may have different chldren, etc
}
}
このすべては、本当に洗練さそうですので、基本的に私はここに私を助けることができるパターンを探しています。 BuildTree関数はある種のポリシーのようですが、今後は別のポリシーを使用できるようにしたいと考えています。
もう1つの複雑な要因です。 BuildTreeには、BuildTreeの以前のことを条件にしたものがあります。たとえば、私がBを生成したことがあるならば、XYZをCノードにする必要があります。現在、Aの子を生成している場合は、Dを生成しないでください。
ファクトリーパターンを試しましたか?ハハハハ。ごめんなさい。 –