开发者社区> 问答> 正文

interface+Impl什么时候用

之前在书上经常说interface+Impl是有多好,网上也有人[zhouchao001的博客]总结到:
1、重要性:在Java语言中, abstract class 和interface 是支持抽象类定义的两种机制。正是由于这两种机制的存在,才赋予了Java强大的 面向对象能力。

   2、简单、规范性:如果一个项目比较庞大,那么就需要一个能理清所有业务的架构师来定义一些主要的接口,这些接口不仅告诉开发人员你需要实现那些业务,而且也将命名规范限制住了(防止一些开发人员随便命名导致别的程序员无法看明白)。
   3、维护、拓展性:比如你要做一个画板程序,其中里面有一个面板类,主要负责绘画功能,然后你就这样定义了这个类,可是在不久将来,你突然发现这个类满足不了你了,然后你又要重新设计这个类,更糟糕是你可能要放弃这个类,那么其他地方可能有引用他,这样修改起来很麻烦,如果你一开始定义一个接口,把绘制功能放在接口里,然后定义类时实现这个接口,然后你只要用这个接口去引用实现它的类就行了,以后要换的话只不过是引用另一个类而已,这样就达到维护、拓展的方便性。
    4、安全、严密性:接口是实现软件松耦合的重要手段,它描叙了系统对外的所有服务,而不涉及任何具体的实现细节。这样就比较安全、严密一些

,但是在公司中却很少用到,各位大神求解

展开
收起
2017-03-24 10:47:29 3144 0
2 条回答
写回答
取消 提交回答
  • 首先这种方式增加的工作量基本可以忽略不计。
    其次在SOA/微服务中,这已经是行业一种基本共识了,如果你所在的开发团队没有使用,那你可能要考虑下你所在的团队是不是比较封闭。:)

    2019-07-17 20:57:58
    赞同 展开评论 打赏
  • interface:是一种约定,暴露服务能力
    Impl:是服务的实现
    如果你用过SOA面向服务开发,就会使用到这种模式。还有一些中间件如 dubbo,rocketMQ 都有用到

    2019-07-17 20:57:58
    赞同 1 展开评论 打赏
问答分类:
问答地址:
问答排行榜
最热
最新

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载