在分层架构中,您有表示层、逻辑层和数据层。
到目前为止,我一直将类分组为域、服务和 dao 包。这表示具有 POJO/JPA 实体、业务逻辑和数据访问层的模型。
我想可以将域和服务分组以形成逻辑层,但这在表示层或 UI 层上留下了问号。是否有任何约定,甚至是不成文的,在这一层中根据类的性质将类分组到包中?还是留给领导项目的人欣赏?
作为额外说明,我目前正在试验 Web 应用程序,并使用“servlet”包对 servlet 进行分组,并使用“web”包用于 ResponseHeaderFilters、ServletContextListeners 和实用程序类。我很想知道桌面应用程序是如何完成的。
最佳答案
我从未听说过与架构有关的包命名约定。我所知道的唯一惯例或“最佳实践”是您的包名称应该以独特的模式开头,通常由反向域名(如 com.mycompany)左右组成。只是为了确保您不会将来自不同库的类添加到同一个包(命名空间),这可能会导致意外的副作用。
但无论如何,如果您根据层或用途命名包,它会增加可读性。我见过像下面这样的方案,我个人很喜欢,因为它很容易找到和识别类,并且易于扩展:
com
.company
.product
.module1
.server
.function1
.impl
.client
.function1
.common
.function1
.impl
关于java - 架构和包,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1952104/