いくつかの線形連鎖(javaのStringBuilder)を作成したり、多くのプロパティ(PizzaBuilder)を持つオブジェクトを作成している場合は、ビルダーパターンが良いと思われます。Builderパターンを使用してマルチレベルツリーを構築する明確な方法はありますか?
紛らわしいノードの場所を指定せずにツリーを構築することはできますか?
a
/| \
c d e
/\
f g
TreeBuilder tb.addNode(levelNumber, parentNumber, nodeName) // I think this is terrible
tb.addNode(2, 3, g) //terrible
このパターンでは、いい考えではありませんか?
おかげ
StringBuilderはBuilderパターンに従いません。 builderパターンは "オブジェクトを作成するインスタンスを定義しますが、サブクラスはどのクラスをインスタンス化するかを決定します"。 –
"ビルダー"とは、いわゆる流暢なビルダークラスを意味しますか?もしそうなら、[この質問](http://stackoverflow.com/questions/563328/elegant-and-maintainable-way-of-populating-tree-structures-in-c-sharp)は幾分それを扱います。グループのうち、私は[この回答](http://stackoverflow.com/a/563380/1215441)が一番好きでした。 – cutchin
@ Jiahua - あなたが提供した見積もりはBuilderではなくFactory Methodのためのものです(GoFの内側カバーにあります)。 – kdgregory