接口漫漫谈

接口——沟通的桥梁

随着科技的发展,人们很多事情不再需要亲自动手,直接调用接口就可以了

洗衣服按下洗衣机的按键接口;

投资理财打开支付宝,选择基金,余额宝等;

定个机票,打开携程App……

什么是接口

接口是做好一件事情的暴露出来一些方法,通过操作这些方法可以做很复杂的事情。

接口越是简单,能做的事情越是强大,那么这个接口受到欢迎。

接口内部的具体实现和细节是被隐藏起来,不为人知。比如钱存入余额宝,具体如何赚取利息的过程就是隐藏的。

任何对象都有接口,面向对象编程就是面向接口编程。

什么是好的接口

隐藏实现:

不要把实现功能的具体实现暴露给使用者。比如在餐馆点菜,无需亲自指挥炒菜师傅先放油,再放姜……。 所以在程序中能放入private中方法不要放在public中。

使用简单:

用最少的方法实现功能,每个方法没有歧义。对应写代码的原则就是命名易懂简单,输入参数精简,每个方法实现单一功能,不要一个方法实现多个功能。

满足需求

这是最基本的要求

小接口组成大对象

电脑是鼠标,键盘,屏幕,cpu,内存,主板,显卡,等一系列的对象通过接口组成。也正是由于电脑的各个部件的接口是统一的,我们可以分开购买各个部件,然后组装成一台电脑。

cpu又是各个寄存器,运算器,门电路组成的。

…………

归根结底最后都是由原子组成的

对于程序而言,语句组成函数,函数组成类,类组合模块,模块组成最终的程序。

小接口导致大问题1

这个世界越来越多的接口被创造出来,越来越多的过程被隐藏起来,通过接口每个人的能力看起来越来越大,现代人不仅衣来伸手,饭来张口,而且可以上天入地,无所不能。当然这个世界也越来越危险,越来越脆弱。

且不说停水停电会有什么样的影响,如果说没有网络,我们的生活能继续下去吗,没有天然气,又会怎样。windows爆发个 病毒就会让我们抓狂,微信一旦宕机了,更会让我们无所适从。我们所用的接口越来越多,依赖越来越多。

小接口导致大问题2

我们所依赖的接口出现问题时,往往是这个接口内部一个小小的地方出现了问题。

也许是浮点数被忽略掉某个小数,价值几亿的卫星发射失败了。

由于银行把钱贷给穷人,最后穷人换不起贷款,最终也许会演化成世界经济危机,比如2008年的次贷危机。

也许有一天,人工智能的某个bug爆发了,然后人类灭亡了。

所以人类越强大,所以依赖的接口越多,人类实际上是越来越脆弱。

接口演化过程1

接口的演化很多时候不是一步到位,而是一个逐步的过程。

当汽车刚刚出现的时候,是被马车瞧不起的,当时的汽车噪音大,丑陋,冒着黑烟。

当滴滴打车出现的时候是被出租车反对打压的,是被政府限制的。

当房地产改革,推行房贷的时候,老百姓是不敢向银行借钱的。

……

接口演化过程2

正因为接口的演化是一个迂回前进,逐步前进的过程,所以不要想着接口能一步到位。

很多时候需要小步测试,不行的换一种方式再测试。

在改良接口的过程中我们也要忍受很多的混乱,不确定性,所以需要足够的耐心。

只要看到我们所设计的东西在一步步的前进,你就足够的信心告诉自己,这事能成!


谁在调用谁1


当人类掌握了水稻的特性,开始种植水稻。看起来是人类在利用水稻,殊不知水稻因为被人的利用一跃成为地球上最成功的植物。

  这难道不是水稻利用了人类?

当人们沉迷手机上的各类App,看起来是我们在操控手机,可是手机也绑定了我们,让我们越来越离不开手机。而手机App背后的厂商更是通过app,收集到大量的人们的行为数据。

当有一天,人类彻底掌握了人工智能,从此不用思考。也许这一天,我们就变成人工智能的宠物,人工智能给出的建议,我们也许就只能乖乖执行。

谁在调用谁2

接口,并不一定是高层调用底层,也有可能是底层调用高层。或者是相互调用。

无论是高层还是底层,凡是一个对象跟另一个对象打交道时都应当通过接口去调用,而不是直接获取这个对象的所有信息。

调用一个接口时,实际上调用者的行为也会被这个接口所同化。所以选择好的接口非常重要。

接口的设计与测试1


接口都是由更小粒度的接口组成的,必须优先保证基层接口的稳定才能构建更大的接口,这个世界之所以稳定,是由于组成这个世界的原子是稳定的。

对于房屋的建造,首先要测试每一块砖瓦,只有砖瓦合格房屋才有可能合格。

  用面粉做成的砖瓦是不构建高楼大厦。

对于程序,首先要保证每个一个方法的稳定性,然后每一个类,然后每一个模块的稳定性,最后才是整个应用程序的稳定性。

接口的设计与测试2


对于接口的设计,则刚好是反过来, 首先考虑接口由哪些小接口组成。然后再考虑这些小接口是由哪些更小的接口组成。所以,对一个程序的需求,首先考虑分解成哪些模块,再考虑每个模块由哪些类组成。

而设计接口的时候,首先要想到如何测试这个接口。也就是说这个接口要到达些什么要求。这就是测试驱动开发。

利用接口做好事情


人的精力是有限的,不可能什么事情都自己动手,特别生活在当今竞争激烈的社会,利用接口做好事情非常重要。

语言是人类思想交流的接口,程序语言是人和计算机交流的接口。

任何对象都有接口,知道了使用这些接口就能够操控这些对象。

掌握最强大的接口的使用,比如社交App中的微信。操作系统如windows

多备用些额外的手段,一个接口不能用时,能有替代的手段。

当你发现某事情做起特别不顺手,那是上天给你的机会到了。赶紧设计一个接口,让事情变的容易起来吧!

你可能感兴趣的:(接口漫漫谈)