我有一个描述我的商业模式的Element类。元素的部分业务数据是其子元素(也是元素类型)。所以从概念上讲它是一种树形结构。
另一方面,我不想使用我自己的树实现 - 我想使用一些第三方Tree实现。但是在这些实现中,元素对象由节点对象包装,并且每个元素的子列表都存储在节点对象中(而不是元素对象中)。
在这种情况下,正确的做法是什么?
我不想将元素类绑定到包含元素(树或其他结构)的数据结构。
似乎子元素列表应该在父元素中,因为它是其描述的一部分。
我还想使用第三方树实现。
答案 0 :(得分:1)
你的目标是互不相容的。
第三方库无法修改您的对象,因为它对它们一无所知,所以除非它提供某种Node
接口,并且您编写了所有处理自己的子项,否则无法使用它除了使用包装器之外还要构建一个树。它与LinkedList
的{{1}}工作方式相同。您不希望在添加到java.util
的每个对象中都存在LinkedList
中节点的引用。
由于您需要第三方库,因此除非您能找到使用接口方法的库,否则您几乎可以立即使用包装器方法。 (我不知道一个,但我从来没有找过一个!)。