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

news2024/11/26 5:00:23

一、前言

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

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

依赖倒置原则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^)/ ~ 「干货分享,每天更新」

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/893956.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【从零开始学习Linux】常用命令及操作

哈喽,哈喽,大家好~ 我是你们的老朋友:保护小周ღ 本期给大家带来的是 Linux 常用命令及操作,主要有三个分类:文件操作,目录操作,网络操作,创建文件 touch , 创建目录 mkdir , 删除…

【了解一下常见的设计模式】

文章目录 了解一下常用的设计模式(工厂、包装、关系)导语设计模式辨析系列 工厂篇工厂什么是工厂简单工厂「模式」(Simple Factory「Pattern」)简单工厂代码示例:简单计算器优点:缺点: 静态工厂模式特点: 工…

基于Spring Boot的社区诊所就医管理系统的设计与实现(Java+spring boot+MySQL)

获取源码或者论文请私信博主 演示视频: 基于Spring Boot的社区诊所就医管理系统的设计与实现(Javaspring bootMySQL) 使用技术: 前端:html css javascript jQuery ajax thymeleaf 微信小程序 后端:Java …

改进YOLO系列:2.添加ShuffleAttention注意力机制

添加ShuffleAttention注意力机制 1. ShuffleAttention注意力机制论文2. ShuffleAttention注意力机制原理3. ShuffleAttention注意力机制的配置3.1common.py配置3.2yolo.py配置3.3yaml文件配置1. ShuffleAttention注意力机制论文 论文题目:SA-NET: SHUFFLE ATTENTION …

教育行业选择CRM的四大要求

随着互联网教育的发展和变迁,越来越多的教育机构开始意识到管理客户关系的重要性。然而,对于教育行业来说,选择一款适合自己的CRM系统也不轻松。下面就来说说,教育行业crm要如何来选择? 一、明确使用需求 在进行CRM选…

如何使用 ChatGPT 将文本转换为 PowerPoint 演示文稿

推荐:使用 NSDT场景编辑器 助你快速搭建可二次编辑的3D应用场景 步骤 1:将文本转换为幻灯片演示文稿 第一步涉及指示 ChatGPT 根据给定的文本生成具有特定数量幻灯片的演示文稿。首先,您必须向 ChatGPT 提供要转换的文本。 使用以下提示指示…

Gitlab服务部署及应用

目录 Gitlab简介 Gitlab工作原理 Gitlab服务构成 Gitlab环境部署 安装依赖包 启动postfix,并设置开机自启 设置防火墙 下载安装gitlab rpm包 修改配置文件/etc/gitlab/gitlab.rb,生产环境下可以根据需求修改 重新加载配置文件 浏览器登录Gitlab输…

Azure CLI 进行磁盘加密

什么是磁盘加密 磁盘加密是指在Azure中对虚拟机的磁盘进行加密保护的一种机制。它使用Azure Key Vault来保护磁盘上的数据,以防止未经授权的访问和数据泄露。使用磁盘加密,可以保护磁盘上的数据以满足安全和合规性要求。 参考文档:https://l…

职场修炼:性格内向的程序员如何突破自己

性格内向,不是缺点 社会常识中的看法:性格内心,是成功的障碍。 实际情况:内向和外向各有优缺点 忌讳: 强行改变自己的性格。内心不接受自己的性格。 内向者的优点 善于研究,能够较长时间研究技术问题…

仿写一个tomcat(含线程池配置)超详细!!

目录 工作原理 整体项目结构 自定义注解 创建servlet类 创建启动类 线程池配置 测试阶段 工作原理 首先看流程图,搞清楚tomcat的工作原理 工作原理如下: Tomcat使用一个叫作Catalina的核心组件来处理HTTP请求和响应。Catalina包含了一个HTTP连接…

匈牙利算法相关介绍

重要说明:本文从网上资料整理而来,仅记录博主学习相关知识点的过程,侵删。 一、参考资料 匈牙利算法匹配问题? Exactly how the Hungarian Algorithm works 多目标跟踪数据关联之匈牙利算法 五分钟小知识:什么是匈牙利算法 论文…

改进YOLO系列:3.添加SOCA注意力机制

添加SOCA注意力机制 1. SOCA注意力机制论文2. SOCA注意力机制原理3. SOCA注意力机制的配置3.1common.py配置3.2yolo.py配置3.3yaml文件配置1. SOCA注意力机制论文 暂未找到 2. SOCA注意力机制原理 3. SOCA注意力机制的配置 3.1common.py配置 ./models/common.p…

SpringBoot部署到腾讯云

SpringBoot部署到腾讯云 此处默认已经申请到腾讯云服务器,因为本人还没有申请域名,所以就直接使用的ip地址 XShell连接到腾讯云 主机中填写腾讯云的公网ip地址 公网ip地址在下图中找到 接下来填写服务器的用户名与密码 一般centOS用户名为root&#xff…

ZLMediakit-method ANNOUNCE failed: 401 Unauthorized

使用ffmpeg推流: nohup ffmpeg -stream_loop -1 -re -i "/usr/local/mp4/test.mp4" -vcodec h264 -acodec aac -f rtsp -rtsp_transport tcp rtsp://10.55.134.12/live/test &[rootlocalhost ~]# ffmpeg -stream_loop -1 -re -i "/usr/local/mp…

HCIP的交换机实验

题目 拓扑图 PC1/3接口用access 创建WLAN LSW1 创建WLAN [lsw1]vlan batch 2 to 6[lsw1-Ethernet0/0/1]p [lsw1-Ethernet0/0/1]port l [lsw1-Ethernet0/0/1]port link- [lsw1-Ethernet0/0/1]port link-flap [lsw1-Ethernet0/0/1]port link-type acc [lsw1-Ethernet0/0…

Java实现微信小程序V3支付 (完整demo)

1. 微信小程序支付-开发者文档https://pay.weixin.qq.com/wiki/doc/apiv3/apis/chapter3_5_1.shtml 2. 导入依赖 <!--小程序支付 v3--> <dependency><groupId>com.github.wechatpay-apiv3</groupId><artifactId>wechatpay-apache-httpclient<…

精密、CMOS、轨到轨输入/输出、宽带运算放大器MS8601/8602/8604

产品简述 MS8601/MS8602/MS8604 分别是单 / 双 / 四通道、轨到轨输入和输出、 单电源放大器&#xff0c;具有极低的失调电压和宽信号带宽。它采用 1.8V 至 5V 单电 源&#xff08; 0.9 V 至 2.5 V 双电源&#xff09;供电。 MS8601/MS8602/MS8604 低失调、极低的输入偏置…

02__models

LangChain提供两种封装的模型接口 1.大规模语言模型&#xff08;LLM&#xff09;&#xff1a;输入文本字符串&#xff0c;返回文本字符串 2.聊天模型&#xff1a;基于一个语言模型&#xff0c;输入聊天消息列表&#xff0c;返回聊天消息 Langchain的支持OpenAI、ChatGLM、Hu…

Minjourney 参数详解(MJ参数)

官方地址&#xff1a; Midjourney Parameter ListParameters are added to a prompt to change how an image generates. Parameters can change an images aspect ratios, model version, upscaler, and more.https://docs.midjourney.com/docs/parameter-list官方原文&#…

更改计算机睡眠时间

控制面板–>系统和安全–>电源选项下的更改计算机睡眠时间 如果关闭显示器时间小于使计算机进入睡眠状态时间&#xff0c;时间先到达关闭显示器时间&#xff0c;显示器关闭&#xff0c;这时电脑还在正常工作状态。如果此时敲击键盘显示器出现画面&#xff0c;无需输入密…