依赖倒转原则

解释:高层模块不应该依赖低层模块。两个都应该依赖抽象。抽象不应该依赖细节。细节应该依赖抽象。

说白了就是,针对接口编程,不要对实现编程。

  • 什么叫做高层模块依赖底层模块?

    • 面向过程开发,为了使常用代码可以复用,一般会把常用代码携程许多的函数的程序库,做新项目的时候,直接调用低层的函数。比如,项目访问数据库,我们把访问数据库的代码写成函数,每次写新项目就调用这些函数,这就叫做高层模块依赖低层模块。

  • 存在问题:

    • 如果新项目业务逻辑的高层模块都是一样的,客户却希望使用不同的数据库,我们希望能再次利用这些高层魔魁啊,但是高层模块跟底层的访问数据库是绑定在一起的,就没办法复用这些高级模块

    • pc里如果CPU、内存、硬盘都依赖具体的主板、主板一坏、所有的部件就都不能用了

  • 解决办法:

    • 高低模块都依赖抽象,具体一点就是接口或者抽象,只要接口是稳定的,那么任何一个的更改都不用担心其他的受到影响,这就可以使高低模块都能很容易的被复用

  • 疑问:为什么依赖了抽象的接口或者抽象类就不怕被更改了呢?

    • 里氏替换原则

里氏替换原则

解释:子类型必须能够替换掉他们的父类型

只有当子类可以替换掉父类,软件功能不受到影响时,父类才能真正被复用,而子类也能够在父类的基础上增加新的行为。

比方说,猫是继承动物类的,以动物的身份拥有吃、喝、跑、叫等行为,可当某一天,我们需要狗、牛、羊也拥有类似的行为,由于它们都是继承于动物,所以除了更改实例化的地方,程序其他处不需要改变。

依赖倒转其实就是谁也不要依靠谁,除了约定的接口,大家都可以灵活自如。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值