2011-03-24 112 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