今天突然想起来刚接触java时纠结的一个问题。 当一个项目小到只有几个功能而且功能互相不重叠的时候,那么还有没有使用接口的必要。比方说我只需要实现一个输出hello world的功能,而且后期没有任何扩展,有没有必要创建一个helloService接口和一个实现helloServiceImpl。个人认为是没有必要的,当然这个例子功能过于简单。但是现实中的项目绝对没有这么简单,是必定要用接口的。下面列一下跟朋友讨论后的使用接口好处的一些总结。
1. 接口代表一种行为,顾名思义
2. 屏蔽实现,方便维护。实现可以随便改,入参和返回值和约定一致就可以,大项目对接时比较方便
3. 方便扩展,多继承
4. 方便使用。接口有多个实现时,通过接口可以屏蔽硬编码实现类,可读性好
5. 减少耦合
2016-08-20 15:14:39
2022-06-26补充一不得不用接口的场景
RPC调用,如果没有接口,那么如何才能实现RPC调用,难不成要把实现类打成jar包发布到调用端机器上去,显然不可能,接口这个时候就起到了桥梁的作用,调用端通过接口生成代理类,模仿实现(实际是发送RPC调用到远程机器上去)