链接:toutiao.com/i6882356844245975563
前几天刷头条又刷到了「Service层和Dao层真的有必要每个类都加上接口吗?」这个问题,之前简单回答了一波,给出的观点是「看情况」
现在结合我参与的项目以及阅读的一些项目源码来看。如果项目中使用了像Spring这样的依赖注入框架,那可以不用接口!
先来说说为什么使用了依赖注入框架以后,可以不使用接口!
我整理了支持Service层和Dao层需要加上接口的理由,总结下来就这么三个:
Spring默认是基于动态代理实现AOP的,动态代理需要接口
优先完成Controller层的流程
等所有的类和方法都补全了,再基于TODO,按照上面的流程去一个个的完善逻辑。
Service
-
--- 接口在一个包中 -
impl --- 实现在另一个包里 - Controller
- Service
- ---- 接口在一个包中
- impl ---实现在另一个包里
- impl2 ---新实现在另一个包里
- Controller
- Service
- ---- 接口在一个包中
- impl ---实现在另一个包里
- impl2 ---新实现在另一个包里
- Controller
- Service --- 接口模块
- ServiceImpl
- impl ---实现在另一个包里
- impl2 ---新实现在另一个包里
- Controller
- Service --- 接口模块
- ServiceImpl
- impl ---实现在另一个包
- impl ---新实现和老实现在相同的包中
-
Controller -
Service1 --- 老实现 -
Service2 --- 新实现 -
Dao
Service
impl —实现在另一个包里
Dao
Service
impl —实现在另一个包里
Service2
Dao
Service — 接口模块
impl —实现在另一个包里
ServiceImpl2
Dao
Service — 接口模块
impl —实现在另一个包
ServiceImpl2
Dao
END
推荐好文
强大,10k+点赞的 SpringBoot 后台管理系统竟然出了详细教程!
IntelliJ IDEA 15款 神级超级牛逼插件推荐(自用,真的超级牛逼)
炫酷,SpringBoot+Echarts实现用户访问地图可视化(附源码)
十分钟学会使用 Elasticsearch 优雅搭建自己的搜索系统(附源码)
原文始发于微信公众号(Java笔记虾):Service层需要接口吗?