架构和包

Jam*_* P. 1 java architecture packages conventions three-tier

在分层体系结构中,您有一个表示层,逻辑层和数据层.

到目前为止,我一直在将类分组到域,服务和dao包中.这表示具有POJO/JPA实体,业务逻辑和数据访问层的模型.

我想域和服务可以分组以形成逻辑层,但在表示层或UI层留下问号.在根据这一层的性质将类分组到包中是否有任何约定,甚至是不成文的约定?或者这是否留给了领导项目的人的赞赏?

作为额外的指示,我正在尝试使用Web应用程序并使用"servlet"包对servlet进行分组,并为ResponseHeaderFilters,ServletContextListeners和实用程序类使用"web"包.我很想知道如何使用桌面应用程序完成任务.

And*_*s_D 6

我从未听说过关于架构的包命名约定.我唯一知道的公约或"最佳实践"是你的包名称应该以一个独特的方式,最常见的形成相反的域名(如com.mycompany)左右开始.只是为了确保不将不同库中的类添加到同一个包(命名空间)中,这可能会导致意外的副作用.

但无论如何,如果您在分层或使用后命名包,它会增加可读性.我已经看到了一个类似于我个人喜欢的方案,因为它很容易找到并识别类,并且易于扩展:

com
   .company
           .product
                   .module1
                           .server
                                  .function1
                                            .impl
                           .client
                                  .function1
                           .common
                                  .function1
                                            .impl
Run Code Online (Sandbox Code Playgroud)