首页 > 其他分享 >我国出租车行业的发展伪历史(依赖倒置)

我国出租车行业的发展伪历史(依赖倒置)

时间:2023-08-18 13:33:33浏览次数:46  
标签:大众 车子 依赖 桑塔纳 出租车 倒置 我们

一、前言

既然是“伪历史”,大家就暂且不要纠结故事的真实性了,因为我们今天主要讲的并非是中国出租车的发展史,而是希望通过这个伪历史的例子来用日常生活中的例子,来深入理解一下什么叫依赖倒置

还是按照惯例,我们先从理论定义上面了解一下它的含义:

依赖倒置原则DIP:Dependence Inversion Principle)是程序要依赖于抽象接口,不要依赖于具体实现。简单的说就是要求对抽象进行编程,不要对实现进行编程,这样就降低了客户与实现模块间的耦合。

了解了依赖倒置的定义,我们就来讲个小故事,放松放松。

二、小故事

话说建国初期,战争结束,百废待兴;国家领导人们觉得,为了便于大家日常同行,出租车行业需要尽快建立起来。那么当年就定下了一个指标——今年,我们要培养出1000名出租车司机。

那么出租车司机的培养需要两个关键因素:

关键因素1】合格的驾驶员<br> 【关键因素2】出租车

合格的驾驶员这个比较好办,召集一下以前开过车子的群众,经过层层筛选和培训,很容易建立起这1000人的出租车团队。但是,出租车怎么办? 什么样的车子可以成为出租车呢?

这个时候,有一位领导年轻的时候,去德国留过学,对大众桑塔纳这款车子印象非常深刻,然后就提议,我们就采购大众的桑塔纳汽车吧,这个车子又长又宽,质量好,还省油。好!就这么定了,然后国家联系了大众集团,大众集团接下了这1000辆汽车的大订单(因为以当时的产能,大众1年能生产2000台桑塔纳汽车)。

此时我们发现,出租车汽车品牌的依赖关系是——出租车只能是大众桑塔纳品牌

那么随着国家的发展,国力强盛,人民消费水平日益提升,这1000辆出租车明显已经不够用了。那么国家绝对,新的一年,要将全国的出租车数量再提升5000台。此时,出现了一个大问题!!大众集团反馈说,我们一年桑塔纳的产量才2000辆,满足不了你这5000辆的大单子。

那怎么办?没车子了呀,即使培养出5000名出租车司机,也没车子开啊。我们总不能被大众桑塔纳的产品卡住脖子吧。这个时候,另外一个国家领导人想出了一个解决方案,出租车应该具备哪些特点呢?

【特点1】 百公里油耗要小,也就是省油!<br> 【特点2】 车子得“皮实”,不能总坏!<br> 【特点3】 车子要大,要能装下足够的客户!<br> 【特点4】 车子价格要便宜,不能高于15万!<br> ……

好,既然我们总结出出租车的以上N个特点,我们就去全球范围内征询符合以上特征的品牌汽车不就可以了。何必只盯着大众桑塔纳不放呢?那么,此时我们发现,出租车汽车品牌的依赖关系是——只要是符合出租车标准的汽车品牌都有机会成为出租车

很快,一大批符合标准的汽车品牌联系我们,被大众桑塔纳卡脖子的情况完美解决了~

三、总结

根据上面的故事,我们可以发现,我们最初的出租车强制要求是大众的桑塔纳了,那么就是我们常说的:

依赖了具体的实例

而后面,我们针对出租车总结出了N条特征,那么这个就是我们常说的:

接口

我们针对出租车的N条特征来全球征集符合特征的车辆,这些车辆都有机会成为出租车,那么就是我们常说的:

基于接口开发

好咧~ 故事就讲到这里了,今天你学会(fei)了嘛~ 期待我们下期再见~

今天的文章内容就这些了:

写作不易,笔者几个小时甚至数天完成的一篇文章,只愿换来您几秒钟的 点赞 & 分享

更多技术干货,欢迎大家关注公众号“爪哇缪斯” ~ \(^o^)/ ~ 「干货分享,每天更新」

标签:大众,车子,依赖,桑塔纳,出租车,倒置,我们
From: https://blog.51cto.com/u_15003301/7134252

相关文章

  • Prism IoC 依赖注入
    现有2个项目,SinglePageApp是基于Prism创建的WPF项目,框架使用的是Prism.DryIoc,SinglePageApp.Services是C#类库,包含多种服务,下面通过使用Prism中的依赖注入方式,将自定义的服务注册到SinglePageApp项目中。 1.认识Prism中的依赖注入Prism项目中的App继承于PrismAppl......
  • WPF利用依赖属性和命令编写自定义控件
    以实例讲解(大部分讲解在代码中)1,新建一个WPF项目,添加一个用户控件之后在用户控件里面添加几个控件用作测试,12345678910111213141516171819<UserControlx:Class="SelfControlDenpendy.SelfControl"             xmlns="http://schem......
  • python项目 如何快速的导入和导出依赖包
    Python项目依赖包【导出】第一步:安装pipreqs包pip3installpipreqs第二步骤:进入项目的根目录执行以下命令:cd根目录第三步:转成requirements.ext文件:pipreqs./--encoding=utf-8--force如果成功,就会在根目录下生成一个requirements.txt文件,内容为本项目环境以来包已经对......
  • 和出租车司机的一段对话
    昨天晚上,用打车软件,打到车后,和司机大哥的一段对话,感觉很有意思,可以对做产品提供些实在的指导,所以记录下来,和大家共享。 我:好不容易,等了半天,要不是用滴滴打车还真打不到的司机:是的。新街口这样的地方,要想打到的真不容易的。用滴滴才行。我:滴滴打车好像真的很方便啊?司机:是的,朋友......
  • C# .NET6 WPF 依赖注入
    入口文件:App.xaml.csusingMicrosoft.EntityFrameworkCore;usingMicrosoft.Extensions.Configuration;usingMicrosoft.Extensions.DependencyInjection;usingSerilog;usingSystem;usingSystem.IO;usingSystem.Text;usingSystem.Windows;namespaceDemo{......
  • 利用CI机制管控jar依赖树 | 京东云技术团队
    1.现状·问题你还记得你排查jar冲突的付出么?为了有效控制jar包更新带来的未知jar引入和变动,我们经常使用dependency-tree来查看依赖关系排查问题,通常是出现问题再被动分析和排查,此时人力成本是巨大的,同时系统已出问题,没有后悔药。2.分析原因jar包依赖是异变的,且隐形的,jar冲突导致......
  • SwiftUI+Combine 依赖注入->Clean架构
     Clean架构是一种软件设计理念,它将应用程序的关注点分成不同的层,每个层都有特定的责任。它被称为"Clean",因为它提倡代码易于阅读、测试和维护,并且不受特定框架或技术的约束。在使用SwiftUI和Combine框架用Swift编写的iOS应用程序的背景下,Clean的架构可能看起来像这样的东西:表......
  • 离线安装Python第三方库及依赖包
    1、问题在工作中经常需要在内网环境中安装python第三方库,使用从pypi上下载的whl文件来安装又经常遇到该库也需要依赖包,以至于并不能成功安装。2、解决办法(1)查看所需第三方库安装是否需要依赖库(以requests为例)pipshowrequests(2)使用命令将库及依赖包下载到本地(以requests为......
  • Spring解决循环依赖的思路
    近期在准备找一些新的工作机会,在网上看了一些面试常见问题,看看自己是否能比较好的回答。今天的这个问题:Spring如何解决循环依赖。看到网上的各种文章的发布时间,这个题目应该是老面试题了,可能比我的码龄长。有很多结合源码来进行解读的文章,但是大多数,是在描述Spring如何解决循环依赖......
  • 项目创建及依赖
    pom.xml<?xmlversion="1.0"encoding="UTF-8"?><projectxmlns="http://maven.apache.org/POM/4.0.0"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://mav......