我有两节课; one解释命令,并将这些命令发送到另一个执行它们的类。然后,我希望执行命令的类能够将此执行的结果发送回解释器类。问题是这些结果本质上是分层的。
现在我在Java API中唯一能让我这样做的就是DOM。我真的不想使用DOM,创建一个新文档,然后将其中的一部分发送回另一个类;它看起来像是一个大笨蛋。还有什么我可以用的吗?
答案 0 :(得分:2)
如果你可以创建一个由节点组成的类,你真的需要一个专门的树数据结构吗?只需使用类中的对象(例如Result
)作为结果,并为可能的子节点添加字段Result
。如果需要,这些字段也可以具有类型Result
。
答案 1 :(得分:1)
您可以尝试一些可用的数据结构,例如JDots http://sourceforge.net/projects/jdots/
JDots(Java动态对象树软件)是一个库/框架,用于创建Java对象的动态树,用于主动方法通信/传播
答案 2 :(得分:1)
您可以使用简化的DOM抽象,使用较少的样板代码,例如JDOM ......或者只是一些嵌套的地图如何快速和脏?
[result:true, childResults:[result:true, childResults:[], result:false, childResults:[]]]
在那里抛出一些递归来把东西放在一起......鲍勃是你的叔叔。
编辑:
如果你需要在子结果中进行排序,你会想要在那里丢一个列表...这在Java中可能有点乱,但我已经在Groovy的土地上这么长时间才跳出来在我...列表和地图的语法糖使得很容易(太容易了?)破坏这样的东西......如果你能控制项目,你可能想看一点Groovy:)
答案 3 :(得分:0)
我认为你要找的是命令模式,而不是API调用。我错了。 由于DOM是xml / html生物,您是在谈论Web应用程序吗?别的什么?
答案 4 :(得分:0)
我认为不是关于java数据结构,而是关于你问题的对应设计模式。
对于分层结构,我可以建议Composite pattern。