(Java)包组织有最佳实践吗?
不久前,我在这里看到一个关于 java
包的细粒度组织的问题。例如,my.project.util
、my.project.factory
、my.project.service
等。
我现在找不到它,所以我不妨问这个问题。
关于 Java 中的包组织以及其中的内容是否有最佳实践?
您如何在 Java 项目中组织类?
例如,我正在与几个人合作的一个项目有一个名为 beans 的包。它开始是一个包含简单 bean
的项目,但最终(由于经验不足和缺乏时间)包含所有东西(几乎)。我通过将一些工厂类放在工厂包中(具有创建 bean
的静态方法的类)对它们进行了一些清理,但是我们还有其他执行业务逻辑的类和其他执行简单处理(不使用业务逻辑)的类,例如检索来自属性文件的代码消息。
感谢您的想法和评论。
-
包组织或包结构通常是一个激烈的讨论。以下是一些关于包命名和结构的简单指南:
- 遵循 java包命名约定
- 根据其功能角色和业务角色构建您的包
- 根据它们的功能或模块分解你的包。例如
com.company.product.modulea
- 进一步的细分可能基于您软件中的层。但是,如果您的包中只有几个类,请不要太过分,那么将所有东西都放在包中是有意义的。例如
com.company.product.module.web
或com.company.product.module.util
等。 - 避免过度结构化,IMO 避免对异常、工厂等进行单独包装,除非有迫切需要。
- 根据它们的功能或模块分解你的包。例如
- 如果您的项目很小,请使用几个包保持简单。例如
com.company.product.model
和com.company.product.util
等。 - 看看Apache 项目中的一些流行的开源项目。了解他们如何将结构化用于各种规模的项目。
- 命名时还要考虑构建和分发(允许您将 api 或 SDK 分发到不同的包中,请参阅 servlet api)
经过一些实验和试验,您应该能够提出一个您感到满意的结构。不要拘泥于一种约定,要对变化持开放态度。
-
Java连接池最佳实践?
2021-01-29 关注 0 浏览119 1答案
-
Java:静态抽象(再次)-最佳实践
2021-01-29 关注 0 浏览78 1答案
-
线程数组的最佳实践(java)
2021-01-30 关注 0 浏览72 1答案
-
线程数组的最佳实践(java)
2021-01-30 关注 0 浏览62 1答案
-
查找Java枚举的最佳实践
2021-01-29 关注 0 浏览104 1答案
-
最佳实践:Java静态非最终变量
2021-01-30 关注 0 浏览67 1答案
-
Java JSON序列化-最佳实践
2021-01-31 关注 0 浏览74 1答案
-
什么是Java内存管理最佳实践?
2021-01-31 关注 0 浏览90 1答案
-
Java Background / Daemon / Service跨平台最佳实践
2021-01-30 关注 0 浏览74 1答案
-
使用Java系统属性的最佳实践
2021-01-30 关注 0 浏览96 1答案