Service 层和 Dao 层真的有必要每个类都加上接口吗?
往期热门文章:
1、放弃 Notepad++,事实证明,还有 5 款更牛逼…… 2、公司这套架构统一处理 try...catch 这么香,求求你不要再满屏写了,再发现扣绩效! 3、Spring 中经典的 9 种设计模式!收藏了 4、高仿小米商城项目,爱了! 5、为什么有些公司不让用 Lombok ?
不需要接口的理由
可以在尚未实现具体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
不使用接口的缺点
总结
最近热文阅读:
1、放弃 Notepad++,事实证明,还有 5 款更牛逼…… 2、公司这套架构统一处理 try...catch 这么香,求求你不要再满屏写了,再发现扣绩效! 3、Spring 中经典的 9 种设计模式!收藏了 4、高仿小米商城项目,爱了! 5、为什么有些公司不让用 Lombok ? 6、厉害了,为了干掉 HTTP ,Spring 团队开源了 nohttp 项目! 7、别瞎学了,这几门语言要被淘汰了! 8、一个基于 Spring Boot 的项目骨架,非常舒服! 9、Redis 低成本、高可用设计,牛逼! 10、2020年国内互联网公司的薪酬排名! 关注公众号,你想要的Java都在这里
评论