2011-03-24 277 views
1

面向對象的新手,渴望學習良好的習慣。如何組織和組織嵌套類

我想做一個vectorMap類。 A vectorMap將具有一些屬性幷包含多個polyLine對象,這些對象又將各自具有一些屬性並由多個xyPoint對象組成。

用戶將主要與vectorMap對象進行交互,但有時可能希望在vectorMap的上下文之外使用polyLinexyPoint對象。

這是否意味着我應該創建三個單獨的公共類?這是否意味着在VBA中有三個獨立的類模塊,在Java中是三個獨立的.java文件?

我的過程直覺告訴我,爲三個小而簡單的類使用三個獨立的源代碼文件,每個代碼只需幾行代碼就會不整潔。我習慣於使用包含許多函數的包的源代碼文件。按此速度,VBA項目將包含數十個類模塊。但也許這就是它在OOP中完成的方式......

以上將在VBA和Java中實現,因此任何/這兩者中的任何示例都是非常受歡迎的。

+0

你有沒有考慮使用標準收藏,而不是滾動你的擁有? – Ingo 2011-03-24 09:13:52

+0

java.util如何?這個包中的calsses實現了各種各樣的集合:列表,地圖,樹,集合。 – Ingo 2011-03-24 09:45:53

回答

0

你是什麼意思「簡單的小班」?我的意見是你應該爲每個可測試的類使用一個新的文件。如果(例如)XyPoint只是包含2個元素的元組,將它作爲PolyLine的子類是個好主意。
然而,就我所見--PolyLine和VectorMap應該在單獨的文件中,因爲你不能真正地告訴A只對B很重要,並且兩者都是可測試的。
此外,當在java中使用子類時,請注意它們的類型(靜態/非靜態,匿名..)並明智地選擇哪個是首選。

p.s. Java中一個強有力的慣例是類名開始是大寫字母。
ps2:我假設這是爲了教育目的,否則你應該(正如@Ingo所說)使用內置的類,而不是重新發明輪子...

+0

內置類,呃...你在想什麼軟件包? – 2011-03-24 09:40:30

+0

「簡單的小班」=幾行代碼。每個PolyLine只是一個XyPoints集合,還有一些屬性(線條兩側的高程,表面粗糙度......)。 – 2011-03-24 09:42:52

+0

查看java.util.HashMap和java.util.ArrayList(通常,它有助於瞭解java.util。*具有哪些...)如果粗糙度,高度...是類需要根據(或者相反) - 它是可測試的,因此應該有它自己的類。 – amit 2011-03-24 09:50:21