关于接口的解释

[b]一篇阐述接口的文章,我觉得写的非常好[/b]

一马平川 19:58:54
接口是对类的抽象
一马平川 20:00:47
我如果直接跟你说接口编程,你一定不理解,或者说很难理解,因为接口本身是很抽象的东西,现在我举例跟你说
一马平川 20:01:38
电源插座就是接口
一马平川 20:01:45
比方说
一马平川 20:02:01
插座有两孔的
一马平川 20:02:04
有三孔的
一马平川 20:02:18
不同的插头需要不同的插座
一马平川 20:02:36
接口就描述了能适应的插头范围
一马平川 20:03:04
现在有一种插座是三孔的,但既可以插三孔的,也可插两孔的,知道么?
一马平川 20:03:43
那么,我们可以说,这个插座设计的好
一马平川 20:03:57
因为他能适用更广的范围
浮尘 20:05:10
嗯。

一马平川 20:04:20
,当然,这个范围不能超出电源插座这个概念
一马平川 20:04:55
如果是用来插笔,做笔筒用,那也不适合
一马平川 20:05:45
如果电源插座不但能适用两孔和三孔的插头,还能适用笔的话,那么我们可以肯定的说,这个接口设计的太差了

一马平川 20:06:41
因为接口(插座)的设计应该是对某一类事物的抽象

一马平川 20:07:39
而且,接口(插座)实现以后,实现该接口的类(插头)必须符合接口的定义(插座和插口匹配),
一马平川 20:07:52
而且需要完全符合
一马平川 20:08:02
一点不符合都不行
一马平川 20:08:19
所以实现某个接口的类,必须从写接口中定义的所有方法
一马平川 20:09:08
如果你觉得该方法不需要实现,你可以留空
一马平川 20:09:13
但必须重写
一马平川 20:09:53
接口只定义了方法的原型,即参数和方法名以及返回值,集成接口的类需要实现它
一马平川 20:10:51
看我这句话:
一马平川 20:08:18
而且,接口(插座)实现以后,实现该接口的类(插头)必须符合接口的定义(插座和插口匹配),
一马平川 20:11:55
其实,你会发现插座生产出来后,如果某电器的插头和插座不匹配,那么就无法使用该电器了
一马平川 20:16:28
实际上,你在设计一个接口的时候,很难想到要怎么去设计,尽管你知道集成这个接口的类是怎么样的
一马平川 20:17:27
就像如果你开一个工厂生产插线板,你在不知道电器,或不完全知道电器的插头如何设计的时候,你是很难生产出能用的插线板的
一马平川 20:18:03
那么,如何设计插线板呢?或者说如何设计接口呢?
一马平川 20:18:39
先看看插线板厂商是如何生产的吧
一马平川 20:19:50
某天,有人生产一个电器是4个孔的,那就用不了了
一马平川 20:21:12
这时候,插线板厂商为了生产出一种插线板,能适用于目前的大部分电器,也能适用于将来的电器,他找到了一个机构
一马平川 20:21:43
机构是专门指定规则的,专门制定协议的
一马平川 20:22:28
机构叫来了大部分的重要电器厂商的头头,和插线板老板一起开了个会
一马平川 20:22:44
大家为了共同的利益,决定了一份协议
一马平川 20:24:15
协议是这样的:电器厂商以后生产的电器的插头,只能生产三孔的,但为了兼容目前市场上已有的电器,也能生产两孔的,但是尽量生产三孔的。而且孔的大小和之间的距离有明确的规定
一马平川 20:25:00
插线板厂商的插线板也只能有两孔的和三孔的,而且孔的大小和之间的距离也必须按照协议来生产
一马平川 20:25:10
于是问题解决了,
一马平川 20:25:53
而且插线板厂商老板很聪明,他发现可以生产出既可以插两孔,又可以插三孔的插口,于是他的插线板大卖,他发财了
一马平川 20:26:47
优秀的接口设计,给他带来了大大的好处,但他很聪明,他没忘记如果没有规范协议的机构,一切都是空白
一马平川 20:30:00
再补充几句吧,不然你还是难以理解
一马平川 20:31:32
当你想设计一个接口的时候,你最好先写几个将要继承这个几口的类,写几个只有框架而无实际内容的类,看看他们之间的共性,找到写接口的点,这就正如找电器老板来开会
一马平川 20:32:56
写接口的时候,你需要在之前对接口进行说明,说明接口的适用范围,以及继承该接口的注意事项,这就好比请机构来制定协议规范
一马平川 20:34:12
有了这些以后,你的接口在被使用的时候就不会错用,在写继承该接口的类的时候,也会按照规范完全的匹配接口。
一马平川 20:36:07
最后一句话,即使你理解了我今晚所讲的每一句话,你还是不会写接口,因为你需要实践,实践才会出真知。最后这句话才是至理名言,我说的基本都是空话(在你学会了写接口后)。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值