我爱编程

Java Web 项目 Service、DAO 层为什么要用接口

2018-03-31  本文已影响1017人  欧阳蓝缺

最近在开始学习Spring Boot,打算转后端开发。在学习过程中发现很多项目都是xxController<-xxService(接口)<-xxServiceImpl这种结构,而大部分情况针对xxService(接口)只有一种实现。

于是产生的疑问,为什么需要xxService(接口)xxController中直接使用xxServiceImpl不就好了吗?

网上看了一圈,比较认可这个看法

java web 中dao 层和service层都使用接口,是否是为使用接口而使用接口? - 小猪的回答 - 知乎
https://www.zhihu.com/question/36021012/answer/116954747

另外我对 Java Web 项目使用接口的理解:

  1. 如果使用 Spring,尽量使用面向接口编程,才能发挥 Spring IOC 作用,不用关心具体实现对象的生命周期,好处是使用方便和内存占用优化。
  2. 大项复杂的项目需要,及一个接口后面可能对应着多个不同的实现。
  3. 多人分层合作,有人负责 Controller 层,有人负责 Service 层,有人负责 DAO 层,大家可以先定义好接口然后就开始各写各的代码了,互不影响。
  4. 控制暴露给外部的内容。接口只会定义公开的部分,而如果直接使用实现对象,会看到实现对象中的私有部分,这部分可能有些是重要的涉及到安全方面的信息。

结论

我应该会按上面知乎回答的方式,根据项目、团队和管理情况来决定使用与否。

上一篇 下一篇

猜你喜欢

热点阅读