mar*_*hon 5 java tree builder-pattern
如果您正在构建一些线性链(java的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
Run Code Online (Sandbox Code Playgroud)
或者这种模式不是一个好主意?
谢谢
kdg*_*ory 10
是的,构建器模式可用于树.树中的每个节点都需要自己的构建器实例.
这是一个带有根和两个子节点的示例.
Tree t = new TreeBuilder()
.addNode(new TreeBuilder()
.addNode("foo")
.addNode("bar")
.toTree())
.toTree()
Run Code Online (Sandbox Code Playgroud)
这是一个真实世界的例子,用于构建XML:http://practicalxml.svn.sourceforge.net/viewvc/practicalxml/trunk/src/main/java/net/sf/practicalxml/builder/(package.html包含示例代码).
当您有一个具有一组属性的类,并且该类的预定义类型具有各种属性集时,构建器模式非常有用。
你只想制作一棵树:
a.add(c, d, e);
e.add(f, g);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3769 次 |
| 最近记录: |