小帮助类的 OOP 设计

By simon at 9 天前 • 0人收藏 • 7人看过

假设我有一个 c 班的学生正在做一些工作。

为此,我需要一个非常简单的 helper 类 h (例如,一对或3元组的表示)。 在 c 中只需要 h。

我会把 h 放在 c 里面。

类 c { void foo (){ / / ... 用 h 来做这个工作更简单... }类 h { / / 非常简单并且包含东西}

把 h 放在 c 里面是个好主意吗? 我这样做是为了把它控制在我认为它应该在的地方,而不是其他地方。 但我不确定这是否是一个好的设计。

3 个回复 | 最后更新于 9 天前
9 天前   #1

这是一个非常好的设计。 类、变量或方法的可见性应该总是被限制在唯一需要的范围内,而不是更多。
如果以后需要在内部类之外使用该类,只需将其移动到其他位置。

9 天前   #2

是的,这是一个好的设计。 你要做的事情叫做内层阶级. 你也可以保密。 如果它不需要对外部类的成员进行独占访问,那么将其设置为静态嵌套类,它将需要更少的内存。

9 天前   #3

其他答案中没有提到的两件事:

首先: 如果假定 h 对象不存在所有的 c 实例,那么 h 应该是静电的.

然后,请记住: 这里有一个内部类,因此 h 的全名实际上类似于无论是什么包裹. com. c.h. 换句话说: 你真的把 h 和 c 联系起来了。

如果你决定在某个时刻 h 有足够的其他方面,使它值得成为"它自己的"东西呢? 然后你可能不得不接触更多的代码,把你的无论是什么包裹. com. c.h进入无论是什么包裹. com. h.

这就是你可以考虑使 h 成为一个顶级类,但是公之于众。 所以你要保持它在 C.java 中,而不是作为内部类!

(当然,这实际上取决于"样式",我认为 googlejava 编码标准告诉您只有最高级别的课程。 Java 文件)

登录后方可回帖

Loading...