DAO包结构

来源:爱站网时间:2021-09-16编辑:网友分享
我正在使用JDBC(没有Spring,Hibernate或其他任何东西)在Java中编写一些简单的DAO。最好将实现DAO与它们的接口放在同一个包中,或者将它们放在sub -...

问题描述


我正在使用JDBC使用Java(没有Spring,Hibernate或其他任何东西)编写一些简单的DAO。

将实现DAO与它们的接口放在同一包中还是放在子包中更好?

示例:

com.mycompany.myproject.dao.MyDao
com.mycompany.myproject.dao.MyDaoImpl

OR

com.mycompany.myproject.dao.MyDao
com.mycompany.myproject.dao.impl.MyDaoImpl

如果您建议子软件包结构,那么建议使用什么作为子软件包名称? .impl? .sql? .jdbc?

实际上,我不会有多个实现。我是否对此工程过度了?

解决方法:


[设计应用程序时,没有standard包进行结构化的方法,经验通常是帮助每个人确定适合我们包的名称的原因。

关于将接口的实现打包在同一个包中或在另一个不同的包中,只需考虑一下Java本身的结构:通常,实现类与接口的打包在同一包中,但并非总是如此。

如果您将要具有相同DAO的多个实现,那么将它们结构化为.jdbc.jpa.jdo子包将很有意义。如果您只打算实现一个实现,那么您列举的两个选项都将以某种方式有意义(相同的程序包或.impl子程序包)。

关于过度工程,我建议您此article。即使您将只实现DAO的一种实现,将它们定义为接口和实现也是有意义的,因为这将有助于您在将来的将来为其他框架重写DAO,同时使用它们保持不变。

最后要由您(或您和您的同伴)达成共识并做出在您的特定情况下更有意义的决定。

编辑

一个应用程序通常每个DAO接口只有一个实现,并且根本不会过度设计,对于JPA和JDO实施相同的DAO接口完全没有道理。使用接口/实现模式的某些目的是简化重构,通过模拟对象进行测试等。

P.S .:我通常依靠JDepend将我的应用程序类分发到程序包中,从而尽可能地避免循环。

上一篇:If语句中的逻辑错误

下一篇:如果SQLite中的列为空,则显示“无标题”

您可能感兴趣的文章

相关阅读

热门软件源码

最新软件源码下载