spring 为什么要先写接口,再写实现类?

例如我的配置文件<beanid="/userAction"class="UserAction"><propertyid="userService"class="UserS... 例如我的配置文件
<bean id="/userAction" class="UserAction">
<property id="userService" class="UserServiceImpl"/>
</bean>
在UserAction代码中
private UserService userService;
set方法...{ }
定义这个接口的意义是什么?
为什么我要用接口的向上转型来调用,意义何在?
展开
 我来答
琛琛家的小羊
推荐于2017-11-26 · TA获得超过286个赞
知道答主
回答量:26
采纳率:0%
帮助的人:15.9万
展开全部
首先你要理解OOP的思想,是面向接口编程.
什么叫面向接口编程呢?
假如你买了一个多媒体设备,它给了你一个遥控,你想要知道的只是按什么按钮,它会播放什么
而遥控里面是怎样运行,还有屏幕里面怎么工作,你想知道吗?
你完全不会去想了解.
那如果多媒体设备需要更新,比如优化内部运行效率,
但是优化完了,遥控的按钮不变,设备的所有操作方式都不变,按这个按钮还是显示相同的东西
那内部怎么变化你完全不需要在意.

这就是面向接口编程.
无论类的内部怎么实现,它对外的接口不变,那它的使用方式就不会变
假设Main类要使用D类的一个draw的方法,
方法名叫 draw():void
不管draw里面是怎样的,Main类里就是这样用,
那么你就从这个接口出发,里面怎么实现是D类的事了,Main类只关心怎么用而已.
其他类要使用它,还是相同
这就大大减少了维护的成本.
因为如果D类出问题,Main类是完全不用改变的.

从上观察,公开的接口越多,维护成本就越大.
维护就越麻烦.所以我们先写接口,定死了公开的接口,
那维护就很方便,出错也只是一个类的事,而不用同时修改多个协同类
百度网友4e8c14a
2013-08-26 · 超过13用户采纳过TA的回答
知道答主
回答量:52
采纳率:0%
帮助的人:34.5万
展开全部
简单点就是为了程序的拓展性。

一个接口多个实现吧?

调用的时候是拿接口调的,具体实现接口来指定。

比如你现在项目里有三个类实现了数据库连接接口。

那么你想用什么数据库就把接口的实现类改一下就ok。而不用去改具体的实现。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
度zkq
2013-08-26 · TA获得超过123个赞
知道答主
回答量:133
采纳率:0%
帮助的人:91.9万
展开全部
并不是一定要写接口.
接口的意义在于多态.
这里你的UserAction里的属性为UserService,你可以在配置文件中给该属性指定任意一个你实现了该接口的类.这样便于以后的维护和扩展,如果你的UserService变了,你只需要在配置文件里改下配置就行了,而不需要改java代码.
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
fendou1030
2013-08-26
知道答主
回答量:8
采纳率:0%
帮助的人:1万
展开全部
定义接口的作用基本上是运用了多态,可以动态的调用实现类,实现类可以方便的更改、替换,只需要改变配置文件就可以
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
cuidonghai888
2013-08-26 · TA获得超过119个赞
知道答主
回答量:168
采纳率:0%
帮助的人:86.8万
展开全部
有一桶水,每个人拿自己的管子去接水,是可以接的,但是要有很多管子,每根都要插进桶里
但是,如果桶上有一个口 可以接任何一个管子是不是很方便
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(5)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式