2012-02-09 183 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