为DAO创建接口是否合理,而我为服务创建了DAO?

时间:2014-02-06 15:53:49

标签: java spring design-patterns architecture

我们正在使用Spring @Autowired @Service和@Component注释来修改一个新的面向服务的体系结构。

我和我的同事一直在辩论,因为没有为每个DAO提供接口。对我而言,它没有任何意义,而我强烈支持具有服务接口的事实,因为具有自动装配的抽象视图。

具体如下:

控制器(消费者)< @Autowire注释的服务(接口)

服务实现(Implements Service)使用@Component或@Repository。

来使用DAO

我对这种架构的理解是正确的还是我错过了非常重要的架构概念。

2 个答案:

答案 0 :(得分:1)

我知道这似乎不太可能,但是我曾经想要使用不同的存储技术实现DAO,或者仅仅因为性能问题而使用JDBC而不是Hibernate。

在大型应用中,一切都是界面。它使您的单元测试更加灵活,并为您提供更好的长期路径。成本只是一些额外的类,大多数IDE可以帮助您维护它们。

答案 1 :(得分:0)

通过从服务接口引用DAO对象,您将获得更容易编写测试的服务。

相关问题