为什么dao层和service层要用接口?dao层和service层不需要一一对应

为什么dao层和service层要用接口

DAO接口
为每个DAO声明接口的好处在于:

  1. 可以在尚未实现具体DAO的时候编写上层代码,如Service里对DAO的调用
  2. 可以为DAO进行多实现,例如有JDBCDAO实现,MyBatisDAO实现,而不需要更改上层代码,只需要简单的在Spring的IoC配置里修改一下注入的DAO实现

Service接口

  1. 可以在尚未实现具体Service情况下编写上层改代码,如Controller对Service的调用
  2. Spring无论是AOP还是事务管理的实现都是基于动态代理的,而动态代理的实现依赖于接口,所以必须有接口的定义才能使用这些功能
  3. 可以对Service进行多实现

总的来说,接口的优势就在于规范方法参数,返回值,另外可以实现多态,结合Spring来说接口对于使用Spring的各种功能也是不可或缺的

另外,使用接口对于测试代码也是有好处的,对于mock一个方法来说,我们不需要关注方法的具体实现,因为本来mock就会将方法内部实现置空,我们的关注点集中于方法参数以及返回值,所以使用接口对于快速实现流程上的测试是有好处的.

dao层和service层不需要一一对应

对应不对应都可以。 对应:即,一个service配一个dao,高内聚,体现了一个类即一个服务的思想,虽然夸了层,放在不同的类,但是从上到下浑然一体,与其他dao没有任何交集,是现在新产生的一种思想,缺点是代码量会大一点。 不对应:即,一个service可以配若干个dao,这是基于传统三层的架构演化而来,dao层的代码复用性高,说白了还是三层思想,不体现高内聚的原则,但是代码量会小很多,利于维护。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值