Java 如何组织课程、套餐

Java 如何组织课程、套餐,java,packages,Java,Packages,您如何决定包名应该是什么,以及包中应该包含什么类 我正在从事一个项目,在这个项目中,我不断地添加/删除类,但不确定是否需要一个新的包,或者是否应该将其添加到我目前不知道的现有包中 创建新包时是否遵循一组规则 如何知道您是否没有复制软件包功能?这仅仅是因为熟悉这个项目 感谢您的指点。我不相信有任何关于包装惯例的硬性规定(尽管我可能是错的)。通常我会把它分解成 com.mycompanyname,然后: 原料药 控制器 数据(用于模型) 作业(用于cron作业) 报告 servlet 乌提尔斯

您如何决定包名应该是什么,以及包中应该包含什么类

我正在从事一个项目,在这个项目中,我不断地添加/删除类,但不确定是否需要一个新的包,或者是否应该将其添加到我目前不知道的现有包中

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

如何知道您是否没有复制软件包功能?这仅仅是因为熟悉这个项目


感谢您的指点。

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

com.mycompanyname,然后:

  • 原料药
  • 控制器
  • 数据(用于模型)
  • 作业(用于cron作业)
  • 报告
  • servlet
  • 乌提尔斯

如果我发现我有一个类不适合这些类中的任何一个,那么我将创建一个新的包

类应该做一件事()

做相关事情的类应该放在同一个包中。如果您发现可以更紧密地关联包中的某些类,请将它们作为子包

例如,如果我有一个包含以下类的项目:

  • GreetingInputWindow
  • GreetingDatabaseObject
  • GreetingDatabaseConnector

我可以把它们都放在
问候语
包中。如果我愿意,我可能会将
GreetingInputWindow
放在
greeting.ui
包中,将另外两个放在
greeting.db
包中。

我强烈反对从实现的角度组织包,比如
控制器
数据
等。我更喜欢按功能对它们进行分组,也就是说,
feature1
feature2
,等等。如果一个功能相当复杂,并且需要大量的类,那么(而且只有在那时)我才会创建上面这样的子包,也就是说,
feature1.controllers
feature1.data
,等等。

@Alex K:我认为它不会重复。你所指的问题是关于包在Java中如何工作,而这个问题是关于如何更有效地定义包。我发现这使代码保持了条理性,但有些人似乎认为这不是很好的做法。michael667所描述的方法的好处是,IMO,它使日志配置更加容易。例如,如果我想查看与汽车相关的所有内容,我可以在汽车软件包中配置日志记录