很多小伙伴都做过Spring项目(基本都是SpringBoot项目),在项目分层上,有些项目带了接口层,有些项目没有,需要接口层吗?
分享一位同学的疑问:
其实早期Spring实现注入、AOP等,都是JDK自带的动态代理,JDK动态代理要求必须使用接口,所以早期的项目都是有各种接口,很多项目都一直延用,很多老程序员也都养成了习惯。现在Spring集成了cglib,不需要接口了也能实现注入,AOP了。
还有另一个原因,就是程序员会觉得有了接口层,项目多少能用点设计模式,看起来高大上一点。
个人觉得没必要,作为业务逻辑来说,面向接口编程费力不讨好。我做过的很多项目,都没加接口层,也没啥问题。
接口一般配合上设计模式,写一些通用逻辑很好用,写业务功能没必要。
当然,用接口也没问题