依赖倒转与里氏替换

简介: 依赖倒转与里氏替换

关于学习的依赖倒转原则的学习,当时不是很明白,不过在网上学习了一些后多少有些了解了,在生活中我们去一个饭馆点餐的时候都是根据这个饭店的口碑怎么样,招牌菜是什么,但是在代码的世界中这个有一些不一样了,其实依赖倒转的主要思想是对于代码的复用以及减少耦合度


还是以饭店为例子,在饭店中有很多的菜品,有炒菜、凉菜、干锅、、等等,那么我们就以这些菜品为一个类,具体的菜为它的子类如果我们要符合依赖倒转原则的话就需要有一个接口在这里了,这样菜品类就不需要依赖于子类来实现了,只需要把接口让子类去实现这样还能减少耦合度,也方便菜品这个类的复用,还易拓展了。


原则:A 高层模块不应该依赖于底层模块。两个都应该依赖于抽象(接口)。  B  抽象不应该依赖细节,细节应该依赖抽象。


说了这个依赖倒转就必须要说一下这个里氏替换,这也就能解释清楚为什么为什么有依赖倒转的原因了,首先里氏替换是指子类型必须能够替换掉它们的父类型。


还是以我们这个饭馆中的菜品为例,如果我们说要炒菜,那么炒菜有很多的个菜,我们总不能每次都要new一个菜来做的,所以有了里氏替换我们直接以父类的名字去实例化一个菜品就行,当然这个菜品必须是炒菜的一个子类才行。这样我们的父类 菜品类   在不需要修改下就可以拓展菜谱了。


炒菜 炒土豆=new 炒土豆丝

炒土豆.盐

相关文章
|
Java 数据库连接 应用服务中间件
【Maven】依赖范围、依赖传递、依赖排除、依赖原则、依赖继承
在Maven中,依赖范围(Dependency Scope)用于控制依赖项在编译、测试和运行时的可见性和可用性。通过指定适当的依赖范围,可以在不同的构建和执行环境中控制依赖项的加载和使用。
778 1
|
5月前
|
机器学习/深度学习 算法 Python
引入相关依赖的包
【8月更文挑战第7天】引入相关依赖的包。
44 11
|
3月前
|
Java API Apache
除了 Maven,还有哪些工具可以管理项目的依赖和版本冲突
除了Maven,常用的项目依赖管理和版本冲突解决工具有Gradle、Ivy、Ant+Ivy、SBT等。这些工具各有特点,适用于不同的开发环境和需求。
191 2
|
4月前
|
Java Maven
Maven 引入外部依赖
如果我们需要引入第三方库文件到项目,该怎么操作呢?
52 5
|
Java Maven 开发者
Maven的依赖作用域和依赖传递
Maven的依赖作用域和依赖传递
477 0
Maven的依赖作用域和依赖传递
大依赖部署
大依赖部署自制脑图
59 0
大依赖部署
|
存储 Java Maven
依赖|学习笔记
快速学习依赖
依赖|学习笔记
|
Java Maven
每日一面 - maven 依赖,我们有两个一样的依赖,但是不同的版本,最后项目会依赖哪个版本呢?
每日一面 - maven 依赖,我们有两个一样的依赖,但是不同的版本,最后项目会依赖哪个版本呢?
每日一面 - maven 依赖,我们有两个一样的依赖,但是不同的版本,最后项目会依赖哪个版本呢?
|
Java Maven
Maven 基础(二) | 解决依赖冲突的正确姿势
Maven 基础(二) | 解决依赖冲突的正确姿势
Maven 基础(二) | 解决依赖冲突的正确姿势
|
存储 JavaScript Oracle
Maven pom 中配置依赖机制
依赖管理是 Maven 的一个核心特性。管理单个项目的依赖关系非常简单。管理由数百个模块组成的多模块项目和应用程序的依赖关系是可能的。Maven 使用定义良好的类路径和库版本在定义、创建和维护可重复的构建方面帮助很大。
435 0