2012-02-09 134 views
0

我有一个简单的设计问题,我不太确定pro和con。如果我必须将数据存储在 - 让 - 说 - 树结构中。可以说这棵树和相应的树是一个类型的类(希望是正确的词)。Java设计:类型类与类扩展

那么,现在让我说我必须在这个基本结构中存储一些数据。例如一个整数,一个float和任何类成员变量。

它是更合乎逻辑

  1. 存储在自己的类(containerlike)所有这些值,并使用该容器类 作为节点的类型或
  2. 扩展这个节点类中,添加额外的成员 和使用这些值之一作为类型?

它的设计问题,但可能你已经熟悉了这种情况。

非常感谢!

+2

这是否是家庭作业? – Jivings 2012-02-09 12:58:38

+1

组合通常可以通过继承来继承。以下是JDK如何定义树:http://docs.oracle.com/javase/6/docs/api/javax/swing/tree/DefaultTreeModel.html – 2012-02-09 13:10:41

回答

4

我会去选择1

使用这个自己的类通过泛型节点的类型。这将使您的树/节点成为您可以用作节点的任何类型的对象的通用属性。

扩展节点类会将您的对象表示为其所有用途中的节点,这可能不是您想要的。另外,你可能会在你自己的类中使用任何节点类的方法。

+0

谢谢您的回答。你的解释的最后一点对我来说并不清楚。你能用更多的话来处理这个问题吗? – 2012-02-10 23:00:31

+0

@JohnRumpel:通过“扩展节点类将表示您的对象作为其所有用途中的节点,这可能不是您想要的。” - >我的意思是,如果在类型类中扩展节点类,那么对象将始终继承特定于节点对象的属性/方法,这在所有情况下可能都不是您想要的。事实上,当你操纵树中的对象时,你可能只想要这种行为。 – bugske 2012-02-15 07:42:12

+0

aaaaah,现在我明白了! :) 谢谢 ... – 2012-03-11 14:50:51