依赖倒转与里氏替换

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

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


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


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


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


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


炒菜 炒土豆=new 炒土豆丝

炒土豆.盐

相关文章
|
Java 数据库连接 应用服务中间件
【Maven】依赖范围、依赖传递、依赖排除、依赖原则、依赖继承
在Maven中,依赖范围(Dependency Scope)用于控制依赖项在编译、测试和运行时的可见性和可用性。通过指定适当的依赖范围,可以在不同的构建和执行环境中控制依赖项的加载和使用。
638 1
|
3月前
|
机器学习/深度学习 算法 Python
引入相关依赖的包
【8月更文挑战第7天】引入相关依赖的包。
42 11
|
2月前
|
Java Maven
Maven 引入外部依赖
如果我们需要引入第三方库文件到项目,该怎么操作呢?
36 5
|
Java Maven 开发者
Maven的依赖作用域和依赖传递
Maven的依赖作用域和依赖传递
429 0
Maven的依赖作用域和依赖传递
大依赖部署
大依赖部署自制脑图
56 0
大依赖部署
|
Java Maven Spring
为什么Spring Boot项目引入依赖的时候可以不指定依赖的版本号
不知道大家在Spring Boot 项目中引入依赖的时候有没有注意到一个问题:引入的依赖不指定版本号,比如下面这样,但是也可以下载到对应的jar 包。
551 0
为什么Spring Boot项目引入依赖的时候可以不指定依赖的版本号
|
存储 Java Maven
依赖|学习笔记
快速学习依赖
依赖|学习笔记
|
存储 XML Java
Maven生命周期,依赖范围
Maven生命周期,依赖范围
284 0
|
Java Maven
每日一面 - maven 依赖,我们有两个一样的依赖,但是不同的版本,最后项目会依赖哪个版本呢?
每日一面 - maven 依赖,我们有两个一样的依赖,但是不同的版本,最后项目会依赖哪个版本呢?
每日一面 - maven 依赖,我们有两个一样的依赖,但是不同的版本,最后项目会依赖哪个版本呢?