老大,Service层需要接口吗?
作者:架构思维
可以在尚未实现具体Service逻辑的情况下编写上层代码,如Controller对Service的调用
Spring默认是基于动态代理实现AOP的,动态代理需要接口
可以对Service进行多实现
先在Controller层编写逻辑,遇到需要委托Service调用的地方,直接先写出调用代码。
优先完成Controller层的流程
然后使用IDE的自动补全,对刚才调用下层的代码生成对应的类和方法,在里面添加TODO
等所有的类和方法都补全了,再基于TODO,按照上面的流程去一个个的完善逻辑。
此方法可以使你对业务流程有比较好的理解。
Controller
Service
Dao
Controller Service --- 接口在一个包中 impl --- 实现在另一个包里 Dao
Controller
Service
---- 接口在一个包中
impl ---实现在另一个包里
impl2 ---新实现在另一个包里
Dao
Controller
Service
---- 接口在一个包中
impl ---实现在另一个包里
Service2
impl2 ---新实现在另一个包里
Dao
Controller
Service --- 接口模块
ServiceImpl
impl ---实现在另一个包里
ServiceImpl2
impl2 ---新实现在另一个包里
Dao
Controller
Service --- 接口模块
ServiceImpl
impl ---实现在另一个包
ServiceImpl2
impl ---新实现和老实现在相同的包中
Dao
Controller Service1 --- 老实现 Service2 --- 新实现 Dao
获得原创整理:《第2版:互联网大厂面试题》
评论