service和dao层是否一定需要实现接口呢?

大多数项目中的架构都如下图所示

在这里插入图片描述
其中facade和manager层可以根据业务需要选择是否保留

通常在项目中我们会选择对facade和service做先写接口,再做实现的处理,但是在实际开发中,好像并没有体现出先写接口的必要性,写篇文章,总结一些接口的好处,以及分析在实际开发中是否一定要接口化处理

接口的好处

  • 可以让开发人员明确该类具备的功能。
  • 在多实现的场景下,对实现类起规范作用。
  • 在多人协作开发的场景下可以快速提供还未实现的方法,如同事B需要一个findById方法,我先写个接口,在实现类中实现它确不补充它的具体实现。
  • 一些偏框架而非业务的代码,留出接口可以便于后续使用者的扩展(单纯提供规范)
  • java动态代理是基于接口去增强的。

实际情况

  • 实际工程开发中,功能从设计到实现,都由一个人完成,且service通常只有一个实现,是否需要引入接口去进行规范?
  • 对于定义行为的接口,确实有保存的意义,比如工程中常用的spring框架中,就留出了很多接口,可以开发人员自由实现定义(多实现,自定义实现场景)

思考

  • 如果只是单纯做业务的话,大部分的service确实不需要通过实现接口去做,一些特殊的场景除外,如利用了策略模式(应对不同,同一操作有不同的实现)
  • 如果项目体系十分庞大,开发人员流动很大的情况下,用接口,是可以对后期的维护起到作用的。
  • 所以是否使用接口,还是要依照项目的具体情况而定,小体量,快速开发的项目,可以考虑不用接口。体量很大,需要一直维护的项目,用接口的话对未来的维护是很有好处的。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值