spring mvc 为什么使用接口,然后写个实现类的方式?

Leaybc 发布于 2016/01/20 17:36
阅读 4K+
收藏 0

 问一个很弱的问题。

为什么spring mvc 在写service的时候,通常会看到先写个service的接口,然后写个实现类,注入进去。

这样的好处是什么?

可以不这么写么?

或者是我搞错了?

加载中
0
公孙二狗
公孙二狗

例如要访问Web服务的数据,开发的时候使用生成模拟数据的类来,线上环境使用访问远程服务的类,使用接口后,注入的时候容易切换实现类,切换后不需要改动任何源码,只需要改动Spring 注入的配置文件

Leaybc
Leaybc
突然顿悟了,看来我还是基础不扎实。反思。。。
0
xmut
xmut
跟spring mvc 没直接关系,好不! 这是所谓的“设计模式“……
Leaybc
Leaybc
唔,好吧,看来我果然还是基础不够扎实,目前业务都是一个接口,一个实现类,所以没有考虑太多情况。。
0
妹子楼顶有鸽子
妹子楼顶有鸽子
1、面相接口编程。2、高拓展性。
Leaybc
Leaybc
哈哈,是的,两个非常重要的特性,感谢回答。
0
rz
rz
一个接口可以有好多实现类,一般情况下就你不用接口也没啥,就是怕生产环境,尤其是没有源码的情况下要修改service的行为的时候,没有接口你就抓瞎
Leaybc
Leaybc
非常感谢回答。 的确,可能是目前没遇到这样的业务场景,所以没考虑到这层。 非常感谢。
0
saintsaya
saintsaya
然而实际工作中100%不会切换实现类,所有这种接口并没有什么卵用
Jimmm
Jimmm
所以啊,纠结,也不明白这到底是为了个啥
0
夏碌冬藏

引用来自“saintsaya”的评论

然而实际工作中100%不会切换实现类,所有这种接口并没有什么卵用

如果不是架构师,仅仅是码农,亦或是做个人产品,基本上就一个接口一个实现,so,然并卵

0
K
Kyrios_7z

spring首推的就是接口注入,接口注入是java代理的默认实现,相对的,类的注入则要通过cglib进行动态代理

返回顶部
顶部