Service层需要接口吗?

本人花费半年的时间总结的《Java面试指南》已拿腾讯等大厂offer,已开源在github ,欢迎star!

本文GitHub https://github.com/OUYANGSIHAI/JavaInterview 已收录,这是我花了6个月总结的一线大厂Java面试总结,本人已拿大厂offer,欢迎star

原文链接:blog.ouyangsihai.cn >> Service层需要接口吗?

Service层需要接口吗?

链接:toutiao.com/i6882356844245975563

前几天刷头条又刷到了「Service层和Dao层真的有必要每个类都加上接口吗?」这个问题,之前简单回答了一波,给出的观点是「看情况」

现在结合我参与的项目以及阅读的一些项目源码来看。如果项目中使用了像Spring这样的依赖注入框架,那可以不用接口

先来说说为什么使用了依赖注入框架以后,可以不使用接口!

我整理了支持Service层和Dao层需要加上接口的理由,总结下来就这么三个:

  • 可以在尚未实现具体Service逻辑的情况下编写上层代码,如Controller对Service的调用
  • Spring默认是基于动态代理实现AOP的,动态代理需要接口
  • 可以对Service进行多实现
  • Spring默认是基于动态代理实现AOP的,动态代理需要接口

  • 先在Controller层编写逻辑,遇到需要委托Service调用的地方,直接先写出调用代码。
  • 优先完成Controller层的流程
  • 然后使用IDE的自动补全,对刚才调用下层的代码生成对应的类和方法,在里面添加TODO
  • 等所有的类和方法都补全了,再基于TODO,按照上面的流程去一个个的完善逻辑。
  • 此方法可以使你对业务流程有比较好的理解。
  • 优先完成Controller层的流程

    等所有的类和方法都补全了,再基于TODO,按照上面的流程去一个个的完善逻辑。

  • Controller
  • Service
  • Dao
  • Service

  • Controller
  • Service
  • 本人花费半年的时间总结的《Java面试指南》已拿腾讯等大厂offer,已开源在github ,欢迎star!

    本文GitHub https://github.com/OUYANGSIHAI/JavaInterview 已收录,这是我花了6个月总结的一线大厂Java面试总结,本人已拿大厂offer,欢迎star

    原文链接:blog.ouyangsihai.cn >> Service层需要接口吗?


     上一篇
    Stream原理解析 Stream原理解析
    1. Stream的优势 图中4种stream接口继承自 BaseStream,其中 IntStream, LongStream, DoubleStream对应三种基本类型( int, long, double,注意不是包装类型)
    下一篇 
    内存泄露的原因找到了,罪魁祸首居然是Java TheadLocal 内存泄露的原因找到了,罪魁祸首居然是Java TheadLocal
    ThreadLocal使用不规范,师傅两行泪组内来了一个实习生,看这小伙子春光满面、精神抖擞、头发微少,我心头一喜:绝对是个潜力股。于是我找经理申请亲自来带他,为了帮助小伙子快速成长,我给他分了一个需求,这不需求刚上线几天就出网上问题了😭