一、前言
既然是“伪历史”,大家就暂且不要纠结故事的真实性了,因为我们今天主要讲的并非是中国出租车的发展史,而是希望通过这个伪历史的例子来用日常生活中的例子,来深入理解一下什么叫依赖倒置。
还是按照惯例,我们先从理论定义上面了解一下它的含义:
依赖倒置原则(
DIP:Dependence Inversion Principle
)是程序要依赖于抽象接口,不要依赖于具体实现。简单的说就是要求对抽象进行编程,不要对实现进行编程,这样就降低了客户与实现模块间的耦合。
了解了依赖倒置的定义,我们就来讲个小故事,放松放松。
二、小故事
话说建国初期,战争结束,百废待兴;国家领导人们觉得,为了便于大家日常同行,出租车行业需要尽快建立起来。那么当年就定下了一个指标——今年,我们要培养出1000名出租车司机。
那么出租车司机的培养需要两个关键因素:
【关键因素1】合格的驾驶员
【关键因素2】出租车
合格的驾驶员这个比较好办,召集一下以前开过车子的群众,经过层层筛选和培训,很容易建立起这1000人的出租车团队。但是,出租车怎么办? 什么样的车子可以成为出租车呢?
这个时候,有一位领导年轻的时候,去德国留过学,对大众桑塔纳这款车子印象非常深刻,然后就提议,我们就采购大众的桑塔纳汽车吧,这个车子又长又宽,质量好,还省油。好!就这么定了,然后国家联系了大众集团,大众集团接下了这1000辆汽车的大订单(因为以当时的产能,大众1年能生产2000台桑塔纳汽车)。
此时我们发现,出租车与汽车品牌的依赖关系是——出租车只能是大众桑塔纳品牌
:
那么随着国家的发展,国力强盛,人民消费水平日益提升,这1000辆出租车明显已经不够用了。那么国家绝对,新的一年,要将全国的出租车数量再提升5000台。此时,出现了一个大问题!!大众集团反馈说,我们一年桑塔纳的产量才2000辆,满足不了你这5000辆的大单子。
那怎么办?没车子了呀,即使培养出5000名出租车司机,也没车子开啊。我们总不能被大众桑塔纳的产品卡住脖子吧。这个时候,另外一个国家领导人想出了一个解决方案,出租车应该具备哪些特点呢?
【特点1】 百公里油耗要小,也就是省油!
【特点2】 车子得“皮实”,不能总坏!
【特点3】 车子要大,要能装下足够的客户!
【特点4】 车子价格要便宜,不能高于15万!
……
好,既然我们总结出出租车的以上N个特点,我们就去全球范围内征询符合以上特征的品牌汽车不就可以了。何必只盯着大众桑塔纳不放呢?那么,此时我们发现,出租车与汽车品牌的依赖关系是——只要是符合出租车标准的汽车品牌都有机会成为出租车
:
很快,一大批符合标准的汽车品牌联系我们,被大众桑塔纳卡脖子的情况完美解决了~
三、总结
根据上面的故事,我们可以发现,我们最初的出租车强制要求是大众的桑塔纳了,那么就是我们常说的:
依赖了具体的实例
而后面,我们针对出租车总结出了N条特征,那么这个就是我们常说的:
接口
我们针对出租车的N条特征来全球征集符合特征的车辆,这些车辆都有机会成为出租车,那么就是我们常说的:
基于接口开发
好咧~ 故事就讲到这里了,今天你学会(fei)了嘛~ 期待我们下期再见~
今天的文章内容就这些了:
写作不易,笔者几个小时甚至数天完成的一篇文章,只愿换来您几秒钟的 点赞 & 分享 。
更多技术干货,欢迎大家关注公众号“爪哇缪斯” ~ \(^o^)/ ~ 「干货分享,每天更新」