我正在使用JDBC(没有Spring,Hibernate或其他任何东西)在Java中编写一些简单的DAO.
将实现DAO放在与其接口相同的包中还是将它们放在子包中更好?
例:
com.mycompany.myproject.dao.MyDao
com.mycompany.myproject.dao.MyDaoImpl
Run Code Online (Sandbox Code Playgroud)
要么
com.mycompany.myproject.dao.MyDao
com.mycompany.myproject.dao.impl.MyDaoImpl
Run Code Online (Sandbox Code Playgroud)
如果你建议子包结构,你会建议什么作为子包名?.impl?.SQL?.jdbc?
实际上,我不会有多个实现.我是否过度设计了这个?
在设计应用程序时,在包中没有标准的结构化方法,经验通常可以帮助每个人确定我们的包的适当名称.
关于在同一个包或不同的包中打包接口的实现,只需考虑Java本身的结构:通常一个实现类打包在与其接口相同的包中,但并非总是如此.
如果你即将拥有的相同的DAO的几种实现那就让它们在结构意义.jdbc,.jpa或.jdo子包.如果你只有一个实现,你枚举的两个选项都有某种意义(相同的包或.impl子包).
关于过度工程,我会推荐你这篇文章.即使您只有一个DAO的实现,将它们定义为接口和实现也是有意义的,因为这将有助于您在将来使用的代码重写其他框架的DAO.他们保持不变.
最后,由您(或您和您的同事)达成共识并做出在您的具体情况下更有意义的决策.
编辑
应用程序通常每个DAO接口都有一个实现,并且根本不会过度工程,为JPA和JDO实现相同的DAO接口是没有意义的.使用接口/实现模式的一些目的是为了简化重新分解,通过模拟对象进行测试等.
PS:我通常依赖JDepend来分发我的应用程序类,尽可能避免循环.
| 归档时间: |
|
| 查看次数: |
12130 次 |
| 最近记录: |