Есть ли чистый способ использовать паттерн Builder для построения многоуровневого дерева?

Похоже, что паттерн builder хорош, если вы создаете некоторую линейную цепочку вещей (java's StringBuilder) или создаете объект с большим количеством свойств (PizzaBuilder).

Можно ли расширить его для построения дерева без указания возможно запутанных мест расположения узлов?

   a
 / | \
c  d  e
     / \
    f   g   

  TreeBuilder tb.addNode(levelNumber, parentNumber, nodeName) // I think this is terrible

  tb.addNode(2, 3, g)  //terrible

Или это просто не очень хорошая идея с этим шаблоном?

Спасибо

5
задан marathon 18 February 2012 в 02:57
поделиться