小编典典

(Java)包组织有最佳实践吗?

all

不久前,我在这里看到一个关于 java
包的细粒度组织的问题。例如,my.project.utilmy.project.factorymy.project.service等。

我现在找不到它,所以我不妨问这个问题。

关于 Java 中的包组织以及其中的内容是否有最佳实践?

您如何在 Java 项目中组织类?

例如,我正在与几个人合作的一个项目有一个名为 beans 的包。它开始是一个包含简单 bean
的项目,但最终(由于经验不足和缺乏时间)包含所有东西(几乎)。我通过将一些工厂类放在工厂包中(具有创建 bean
的静态方法的类)对它们进行了一些清理,但是我们还有其他执行业务逻辑的类和其他执行简单处理(不使用业务逻辑)的类,例如检索来自属性文件的代码消息。

感谢您的想法和评论。


阅读 72

收藏
2022-06-13

共1个答案

小编典典

包组织或包结构通常是一个激烈的讨论。以下是一些关于包命名和结构的简单指南:

  • 遵循 java包命名约定
  • 根据其功能角色和业务角色构建您的包
    • 根据它们的功能或模块分解你的包。例如 com.company.product.modulea
    • 进一步的细分可能基于您软件中的层。但是,如果您的包中只有几个类,请不要太过分,那么将所有东西都放在包中是有意义的。例如com.company.product.module.webcom.company.product.module.util等。
    • 避免过度结构化,IMO 避免对异常、工厂等进行单独包装,除非有迫切需要。
  • 如果您的项目很小,请使用几个包保持简单。例如com.company.product.modelcom.company.product.util等。
  • 看看Apache 项目中的一些流行的开源项目。了解他们如何将结构化用于各种规模的项目。
  • 命名时还要考虑构建和分发(允许您将 api 或 SDK 分发到不同的包中,请参阅 servlet api)

经过一些实验和试验,您应该能够提出一个您感到满意的结构。不要拘泥于一种约定,要对变化持开放态度。

2022-06-13