仅创建服务层和DAO层(接口+实现)或实现

fre*_*dev 7 java oop structure java-ee

我对创建服务层和DAO层的结构感到困惑:在某些示例中,我看到有些人为服务和DAO 创建接口+实现,在其他示例中,我看到人们在DAO扩展包含AbstractDao时才创建实现那些DAO的通用方法,所以我很困惑该怎么做,为什么要选择这个解决方案或另一个,以及最佳实践(常用)请提供建议.

dbf*_*dbf 6

我建议为服务和DAO创建接口.通常,您希望在使用此服务的代码的单元测试中模拟服务.例如,Spring在您使用某些Spring代理(例如事务)时强制您使用接口.所以你应该有一个服务接口.

DAO是更内部的部分,但我总是尝试使用它们来简化测试.