*最近经手了两个项目,项目一有service层interface,项目二没有interface只有实现类。
这让我产生了一个疑问,为什么需要定义interface,有什么好处和坏处。仔细追究之后,发现这个问题很有意思。*
我觉得这个是java程序员,代码数量敲到一定程序必然会感到疑惑的问题。——勋哥哥HD
- 有个接口,注入的时候可以注入到Service对象,没有你就要注入到ServiceImp对象。
以后修改了实现,变成ServiceImp2.java了,有接口的话,改下注解的类就行了。没有的话,你要修改所有用到ServiceImp的类。——黑熊猫爱看书 - 面向对象设计原则中有三条与此相关:开闭原则、依赖倒转原则、理氏替换原则。还记得依赖倒转原则吧?高层不依赖于低层,二者都依赖于抽象,也就是面向接口编程。——知乎用户
- 然而,大多数情况下不会有多实现的情况。
所以,当项目小,开发人员少或者且开发人员水平较高且接近的情况下,可以选择不写interface,可以减少编码。