• 浅谈Service层为何要有接口


    被人随意问了一句,为何每个service层都要写一个接口呢,多麻烦~虽然想说点什么,但是又不知道从何说起,只好从新整理一下思绪.

    情景1:在开源框架中有很多这种情况,就是某个功能支持用户自定义扩展.说白了,它提供了一个接口,我们只需要实现这个接口,把我们自己的实现逻辑补上,就可以让框架按照我们的逻辑来执行.问题来了,框架的作者并不知道我们的实现类是什么,如果不定义一个接口,那么要如何在框架中调用我们的实现类呢?

    情景2:我和同事分别做项目的2个不同功能模块,但是同事的功能中却需要调用我这头实现的部分逻辑.为了让他有一个"占位符"可用,我是不是应该快速的写个接口扔给他呢?

    情景3:一个适配器功能,或是说一个简单的工厂类,如果没有定义接口,那么面对众多实现类,要如何统一操作呢?

    情景4:想让项目的代码符合某种"规范",但是又不可能看着别人写代码吧,那好办,先出一套接口,然后你们就看着办~

    情景5:java中没有多继承,但是可以多实现接口,那么就有一件很有趣的事情了,一个实现类可以实现多个接口,然后此时接口可以有选择的暴露实现类的部分方法,做到"窄化"实现类功能的目的.

    当然例子还有很多..这些情况其实可以说是接口好处的体现,所以java有面向接口编程的建议.但是说回Service层一定要有接口吗?那到未必,因为说到底,多一个接口仅仅是扩展性和某些情况下有优势,但是是否会用到接口的便利性,不确定的情况下我们未必一定要为"可能"买单.只是多写那几行代码,付出一点就可能避免"未来"的大"麻烦",何乐而不为!?

  • 相关阅读:
    基于Dubbo框架构建分布式服务(一)
    大型网站架构系列:消息队列
    Redis Cluster 分区实现原理
    Redis五种数据结构简介
    Java中创建对象的5种方式
    Netty 系列之 Netty 高性能之道
    Java 抽象类与接口
    谈iOS抓包:Mac下好用的HTTP/HTTPS抓包工具Charles
    Web系统大规模并发——电商秒杀与抢购
    [转]MS SQL Server 数据库连接字符串详解
  • 原文地址:https://www.cnblogs.com/chyu/p/6147907.html
Copyright © 2020-2023  润新知