我和我的团队正在构建java EE
app作为学校项目,我们决定使用hibernate
。我们还想让整个项目尽可能干净整洁,所以我们试图遵循推荐的约定。然而,我无法找到hibernate
文件的约定。
I.E.我有一个文件夹/cz/fit/cvut/nameofmyproject/
,我有包controllers
,models
,utils
。在controllers
我有Spring controllers
,在models
我希望为我的实体设置模型,在utils
我SessionFactory
hibernate
}}。现在我的问题是:
如何命名model
包中的类?应该是MyEntityNameDTO
,还是我误解了DTO
的含义,我应该将它们命名为MyEntityNameModel
?什么应该是我的DAO
类的文件夹的正确名称?对于中型项目(最多20个类/文件夹),这个简单的划分是否足够,还是会让人感到困惑?感谢praxis的任何提示:)
答案 0 :(得分:2)
UserDAO
- 界面
UserDAOImpl
- 实施UserDAO
这通常是我使用的。有时像DefaultUserDAO这样的默认前缀可能更有意义,如果您正在创建一个您希望其他人实现但您提供参考实现的接口。
大多数时候我觉得这两种语言可以互换使用,但在某些情况下,一种语言比另一种语言更清晰。
我见过两种惯例:
FooDao用于接口,FooDaoImpl用于实现
IFooDao用于接口,FooDao用于实现
前者源于CORBA;后者是Microsoft COM / .NET约定。 (感谢Pascal的更正。)
Hibernate提供了由实现实现的命名策略接口。
我在这里列出的方法很少。
答案 1 :(得分:2)
DTO代表数据传输对象。 DTO通常是一个比真实类更多的数据结构的类,它被创建用于将信息从一个层传输到另一个层,通常是通过网络传输。它是不模型实体。
经常使用DTO
因此,命名您的实体DTO不是一个好主意。 DTO和实体是不同的东西。 Model
后缀也很麻烦。实体通常以其代表的名称命名:Customer
,Company
,Player
,Order
等。
根据技术角色隔离类是一种经常使用的解决方案。但是,当应用程序增长时,它往往不会扩展。我通常基于功能方面(如客户管理,订单管理,安全性等)进行第一级隔离,然后基于技术方面(服务,dao,模型等)进行第二级隔离。