网页
资讯
视频
图片
知道
文库
贴吧
地图
采购
进入贴吧
全吧搜索
吧内搜索
搜贴
搜人
进吧
搜标签
日
一
二
三
四
五
六
签到排名:今日本吧第
个签到,
本吧因你更精彩,明天继续来努力!
本吧签到人数:0
一键签到
可签
7
级以上的吧
50
个
一键签到
本月漏签
0
次!
0
成为超级会员,赠送8张补签卡
如何使用?
点击日历上漏签日期,即可进行
补签
。
连续签到:
天 累计签到:
天
0
超级会员单次开通12个月以上,赠送连续签到卡3张
使用连续签到卡
04月29日
漏签
0
天
java吧
关注:
1,257,217
贴子:
12,749,449
看贴
图片
吧主推荐
视频
游戏
首页
上一页
1
2
3
4
5
下一页
尾页
129
回复贴,共
5
页
,跳到
页
确定
<返回java吧
>0< 加载中...
回复:【治水】接口是干嘛用的
只看楼主
收藏
回复
bbs上的某个id
淼淼淼淼
12
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
我之前也是接口组的。。。现在搞侦庭去了
来自
Android客户端
49楼
2015-09-27 07:36
回复
收起回复
54ct28
司马水
13
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
我那本书吧接口和方法写的几乎一样。。。。。
50楼
2015-10-03 14:09
回复
收起回复
武汉市积墨智能科技
java
毕业论文-万字全文一分钟生成,全文可预览,基于深度推理模型微调,查重,AIGC包过,依托庞大的论文库数据训练,书写流畅无AI味,参考文献真实可查
2025-04-29 23:37
广告
立即查看
咯农村民办
司马沝
14
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
就是留了一个功能但是还没开发
IP属地:北京
来自
Android客户端
51楼
2015-10-20 20:48
回复
收起回复
哥名叫做丶爱
淼水
4
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
接口是干嘛用的
接口只规定了对象必须实现的方法,但是没有任何实现,也就是说没有执行逻辑的有效代码。
要想完成具体业务还是需要编写实现类来实现接口。
那么问题来了,既然具体业务实现仍然是由接口的实现类来完成的,那么要编写接口有什么卵用?
先来看看什么样的语言有接口语法
注意这里说的是编写程序的时候使用的接口语法
至于其他形式完成接口功能的方式不讨论
Java有,C++有,C#有
JavaScript没有,Python没有,Ruby没有
可以看到需要声明接口的语言都是在传入接口参数时进行语法检查的
也就是说如果声明了这样一个方法:
void quest(Httq q);
那么调用这个方法时只能传入一个参数
而且这个参数的类型必须是Httq
当然根据类型转换的原则
类的子类,接口的实现类也可以
至于为什么这些语言必须做强制类型检查
那就是另外的问题了
好,基于这个事实我们再继续思考
quest方法只接受Httq类型的参数
那么我就在Httq类的实现里编写业务逻辑代码就是了啊
这样当然是可以的,如果Httq类的代码我们可以修改的话
我们可以假设Httq类里实际上只暴露了一个方法给外界:
public String getMsg();
而quest方法中有一行代码是这样写的:
String msg=q.getMsg();
这样Httq里承载了某些数据,而getMsg方法就是把它承载的数据
整理成字符串形式返回
看起来很简单不是吗?
有一天我们突然发现,Httq承载数据有不同的格式
最简单的是纯文本
有的是字节数组
有的是xml树形结构
有的甚至是一个数据库查询结果的链接
于是我们的getMsg方法中就出现了好多的条件和判断
这一段用来处理字节数组,另一段用来处理xml
到目前为止,一切都可以工作的
然后我们将它打包发布出去了
一个星期之后,另一个团队基于我们的程序包开发新的功能
他们发现,Httq类需要承载一个Ajax请求作为数据
但是他们已经无法再修改Httq类了
当然他们也是很聪明的
他们编写了一个HttAjax类继承了Httq类
覆盖了getMsg()方法
与此同时HttAjax暴露了一个方法用来获取Ajax数据的版本号
public String getVersion();
一切又可以有条不紊地进行了
镜头拉回我们的团队
一个月之后
我们发现了我们已经发布的程序包有重大的安全隐患
并且第一时间通知了刚才那个Ajax团队
Ajax团队让我们修复一下然后把新的程序包发布出来
当然,这正是我们的工作
所以我们光速修复了安全隐患
重新制定了字节数组、XML甚至数据库链接的规范
新的规范要健壮多了
然后,当然我们也是很人性化的
为了兼容旧的数据,我们在Httq类里声明了一个方法
public String getVersion();
这个方法返回所承载数据的版本号
用来区别对待新规范和旧规范
我们满怀诚意的将新版本发布了出去
第一天一切似乎都很顺利
第二天Ajax团队报告说过去24小时的数据全部丢失了
我们检查了我们所有的代码,没有发现问题
无奈之下,实习生工程师被派到Ajax团队调查问题
结果是令人沮丧的
因为HttAjax类覆盖了getVersion()方法
导致quest方法调用getVersion()时得到了错误的值
首先我们向Ajax团队建议
你们把getVersion()改成另一个名字吧
他们拒绝了,因为他们的代码里到处都有getVersion()的调用
于是他们把同样的建议返回给了我们
我们也拒绝了,因为我们的代码里面同样到处都有getVersion()的调用
这下好了,我们双方都必须花费很多精力重构代码了
当然,这已经不管我的事,因为我的辞职报告已经交上去了
我们跳回“看起来很简单不是吗?”这一行
当我们发现我们要承载不同的数据时
我们将Httq改成了一个接口
接口中只声明了一个方法
public String getMsg();
我们根据每一种需要承载的数据都编写一个类实现这个接口
HttqText
HttqXML
HttqDB
和一个又一个的判断说再见吧
因为对象自己肯定知道自己要处理的是xml还是数据库链接
妈妈再也不用担心数据类型判断的问题了
Ajax团队也仅仅只是声明了一个新的类实现了Httq接口
关于后面出现的安全隐患的问题
接口是不可以改变的,那我们的getVersion方法怎么办?
当然,因为HttqText类我们还是可以修改的,不是吗?
所以我们在HttqText类添加了getVersion()方法
但是,太奇怪了,quest方法里面却不能调用这个方法
void quest(Httq q);
原因很简单,强制类型检查的结果
Httq是个接口,接口也是类型的一种
变量q的类型是Httq就可以作为参数传进来
来自
Android客户端
52楼
2015-11-04 14:22
回复
收起回复
浅眠落
淼淼淼淼
12
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
IP属地:北京
53楼
2015-11-20 17:25
回复
收起回复
sw576324146
司马沝
14
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
大神,请手下我的膝盖
IP属地:辽宁
55楼
2016-01-03 20:09
回复
收起回复
贴吧用户_QRaaaCU869
淼淼淼淼
12
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
……
IP属地:广东
来自
Android客户端
56楼
2016-01-27 07:26
回复
收起回复
mishaki
司马沝
14
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
看不懂,难道是我的水平太差?感觉讲的所有知识都学过啊
IP属地:广东
来自
Android客户端
57楼
2016-01-27 07:39
回复
收起回复
武汉市积墨智能科技
java
毕业论文-你还在为毕业论文而苦恼吗,积墨模型3分钟帮你搞定,专精模型,基于DS微调,包过查重、AIGC
2025-04-29 23:37
广告
立即查看
GE丶ITboy
淼淼淼沝
11
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
樓主的日常水貼,鑒定完畢
IP属地:广东
来自
Android客户端
58楼
2016-01-27 07:45
回复
收起回复
GE丶ITboy
淼淼淼沝
11
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
6666666
IP属地:广东
来自
Android客户端
59楼
2016-01-27 07:45
回复
收起回复
1065119602
沝
2
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
实力
IP属地:河南
来自
手机贴吧
60楼
2016-03-30 07:29
回复
收起回复
Godzz丶
淼淼淼
9
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
楼主,精液拿好啦,么么哒。
IP属地:北京
来自
iPhone客户端
61楼
2016-04-03 11:08
回复
收起回复
wearegood99
淼淼沝
8
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
。。。
IP属地:北京
来自
Android客户端
62楼
2016-04-06 08:51
回复
收起回复
蔡涛99
淼淼淼沝
11
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
干货收藏了
IP属地:浙江
来自
Android客户端
63楼
2016-04-07 09:30
回复
收起回复
登录百度账号
扫二维码下载贴吧客户端
下载贴吧APP
看高清直播、视频!
贴吧热议榜
1
鸣潮赞妮卡池已开大家战果如何?
1775760
2
曝BLG和TT互换打野
1349283
3
日本不敢管美军却在炒作中国人
1284388
4
董袭莹被曝不符合协和4+4要求
1004616
5
美军杜鲁门号航母战机坠海
738192
6
孤独摇滚上映两天票房破千万
583325
7
奥美迦青龙白虎装甲造型怎么样
463392
8
为什么阿斗的风评逐渐变好了呢?
264684
9
永野芽郁为私生活争议道歉
246460
10
火勇G4有没有主场哨
244150
贴吧页面意见反馈
违规贴吧举报反馈通道
贴吧违规信息处理公示