如何组织类,包

时间:2011-09-22 13:28:08

标签: java packages

您如何确定包名称应该是什么以及哪个类应该进入哪个包?

我正在开发一个项目,我不断添加/删除类,并且不确定我是否需要新软件包,或者应该将其添加到我当前不知道的现有软件包中。

创建新包时是否遵循一套规则?

您如何知道您是否没有复制包功能?这只是熟悉项目。

任何指示赞赏。

3 个答案:

答案 0 :(得分:14)

我强烈反对从实现的角度组织软件包,例如controllersdata等。我更喜欢按功能对它们进行分组,即feature1,{{1如果一个特征相当复杂并且需要大量的类,那么(并且只有这样)我创建上面的子包,即feature2feature1.controllers等。

答案 1 :(得分:11)

课程应该做一件事(Single Responsibility Principle)。

执行相关操作的类应该放在同一个包中。如果您发现可以更密切地关联包中的某些类,请将它们作为子包!

例如,如果我有一个包含这些类的项目:

  • GreetingInputWindow
  • GreetingDatabaseObject
  • GreetingDatabaseConnector

我可能只是将它们全部放在greeting包中。如果我愿意,我可以将GreetingInputWindow放入greeting.ui包中,将另外2放入greeting.db包中。

答案 2 :(得分:2)

我不相信包装惯例有任何硬性规定(尽管我可能是错的)。通常我会把它分解成

com.mycompanyname然后:

  • API
  • 控制器
  • 数据(适用于模特)
  • 工作(为cron工作)
  • 报告
  • 的servlet
  • utils的

如果我发现我的课程不适合任何课程,那么我会创建一个新课程。