如何正确组织java包

Mig*_*ork 3 java packages

[这不是23247951的副本]

我可能制作了太多的包,有些包装也是如此mightypork.gamecore.control.events.input.

大多数情况下它很好,但有时我不确定我做得对.这是一个示例图像:

在此输入图像描述

Tile.javaTileRenderer.java属于tile包,因为它们是"顶级"抽象或接口,或者进入子包,因为实现都在那里?我希望结构合乎逻辑,但我真的不确定.请注意,这只是一个例子,我在至少十几个地方处于类似情况.

更一般地说,为一个具体的实现做一个子包是一个好的做法吗?

Har*_*ezz 5

如果定义包,请尝试考虑模块性.哪种类型可以解决软件的一个方面,构成一个具有清晰边界的模块?哪些其他类型定义了另一个依赖于其他模块的模块?Java seam中的包是分层的,但它们不是.从来没有,使子包只依赖于超级包,而不是相反.拥有不依赖于超级包的子包是可以的.并且不要像all my DAOs或那样创建技术包all my Controllers.包装的一个主要驱动方面是包装的类型具有的内程度.另一个是应用程序的分层.

我的方法是:首先将所有内容放入一个包中.当您的应用程序发展时,识别模块并重新打包它们.尽量保持低包之间的依赖关系.检查相同软件包的任何一种类型是否相互依赖,或者它们是否涉及相同的方面/共享相关职责.

  • 从实际的角度来看,这听起来是正确的...但是我会在包浏览器中有一个怪物列表,而对于嵌套包,它看起来更干净(但不太有用?). (2认同)