元素的childern存储在元素或树节点中?

时间:2014-01-17 23:03:42

标签: java design-patterns data-structures tree

我有一个描述我的商业模式的Element类。元素的部分业务数据是其子元素(也是元素类型)。所以从概念上讲它是一种树形结构。

另一方面,我不想使用我自己的树实现 - 我想使用一些第三方Tree实现。但是在这些实现中,元素对象由节点对象包装,并且每个元素的子列表都存储在节点对象中(而不是元素对象中)。

在这种情况下,正确的做法是什么?

  • 我不想将元素类绑定到包含元素(树或其他结构)的数据结构。

  • 似乎子元素列表应该在父元素中,因为它是其描述的一部分。

  • 我还想使用第三方树实现。

1 个答案:

答案 0 :(得分:1)

你的目标是互不相容的。

第三方库无法修改您的对象,因为它对它们一无所知,所以除非它提供某种Node接口,并且您编写了所有处理自己的子项,否则无法使用它除了使用包装器之外还要构建一个树。它与LinkedList的{​​{1}}工作方式相同。您不希望在添加到java.util的每个对象中都存在LinkedList中节点的引用。

由于您需要第三方库,因此除非您能找到使用接口方法的库,否则您几乎可以立即使用包装器方法。 (我不知道一个,但我从来没有找过一个!)。