为什么要用接口,而不是直接用类实现

接口这个定义比较老生常谈,那么很多人都只知道扩展性好啊,多态啊…的一些好处,但是为什么要用接口呢。
出现这个问题的根本原因,是目前你还没达到这个项目级别高度,因为接口的定义是站在产品总监的位置他来发起的。说实际一点,我是一个产品总监,我必须要求我的项目具有扩展性,容错性,什么意思,我手下有20多个人,每个人做一个模块,那么我就对每个模块做了定义了(就是接口),因为这是一个系统,一个项目,很多模块,我不可能盯着每个人直接写接口实现,或者我不能自己写直接实现接口的类,如果让下面的20个人分别写某个模块,直接实现接口。如果某天其中一个人辞职了不干了,我会招聘另一个人,他只需要看我定义的接口,就能实现我要的功能模块了,而不是在离职的那个人的代码里(可能有错误,可能有冗余)修改。
现在大家都能理解了,接口不是留给简单的程序员(码农)来思考有什么用的,因为接口不是给你这种简单码农用的,你只需要给我实现接口就ok,接口是站在产品高度的领导者,才能发起的,他才会考虑的。那么换位思考,我当然知道我下面的20个人,他们都想各自写直接实现就ok。

那么你为什么会出现这个问题,因为你不仅充当了码农的角色,你还扮演了整个项目的产品经理,你想把你的项目做到最优化,最好。

但是你手下还没那么多人,所以没能暴露出不写接口的麻烦。

总之一句话总结就是,接口是产品经理等站在项目一层的人发起的动作,底层的码农必须按照接口要求进行实现,角色不同,考虑不到不知道你们都清楚了吗(措辞可能有些bug,请忽略)。

举个例子。
我是唐山市的市长,由于我要求我们市所有跑的车辆必须是6个轮子的车,那么我这就要定义一个接口,所有给唐山市的生产厂家,必须生产的车辆是6个轮子。
然后A厂就去生产了6个轮子的。
B厂生产了5个轮子的。
那么B厂的车我就不允许来唐山市卖了,我就保证了整个唐山市的车辆都是6个轮子的。
以后可以还有很多车厂(一汽丰田,广汽本田等)给唐山市生产车,但是必须按照我的规章,要6个轮子,才可以来我市(代码写进我的项目)。规则是领导者定的。
接口是领导者为以后扩展定的规则。

原文中有一个评论是“为什么电脑主板上还要有内存插槽,显卡插槽?多浪费机箱空间啊?
直接用电烙铁把显卡和内存的引脚一根一根焊到主板上不就得了。
如果你焊错位置了,说明你焊工不好。
每次拆装的的时候再继续用电烙铁。”
得到了很多小伙伴的赞同,但是这个只说出了接口存在的好处,并没有类比到接口出生的本质。出生的本质是为了高性能,i5主板提前制定了CPU必须是1150针,才能插在我的主板上,达到扩展的目的。

好了说了这么多应该都清楚了,接口就一句话,领导者制定的规则。写接口并不是为了扩展,而是为了扩展以后的模块仍然跟项目模块保持高度一致。

所以项目大小不是决定写接口的决定性因素,决定性因素是,你要不要写的规范,扩展后,还是那么规范。

转载自:https://www.cnblogs.com/xiruojun/p/9951798.html

  • 1
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值