依赖倒转原则 -- 大话设计模式

在今天,读书有时是件“麻烦”事。它需要你付出时间,付出精力,还要付出一份心境。--仅以《大话设计模式》来祭奠那逝去的……

依赖倒转原则:A,高层模块不应该依赖低层模块,两个都应该依赖抽象;B,抽象不应该依赖细节,细节应该依赖抽象。

为什么会叫依赖倒转?

  面向过程开发时,为了使常用代码可以复用,一般都会把这些常用代码写成许许多多函数的程序库,这样我们在做新项目时,去调取这些底层函数就好了。比如我们做的项目大多都要访问数据库,所以我们把访问数据库的代码写成了函数,每次做新项目的时候都去调取这些函数。这就是高层模块依赖低层模块,问题也就出在这里。我们要做新项目的时候,发现高层业务逻辑代码都一样,但客户缺希望使用不同的数据库去实现,这时候就出现麻烦了。我们都希望可以利用这些高层模块,但是高层模块都是和底层模块绑定在一起的,没办法复用这些高层模块,这就非常糟糕了。PC里,如果CPU、内存、硬盘如果都依赖主板,主板一坏就都不能用了。反过来,如果内存坏了,也不能造成其他部件不能用才对。而如果不管高层模块还是低层模块,它们都依赖于抽象(接口或者抽象类),只要接口稳定,那么任何一个更改,都不用去担心其他受到影响,这就使得无论高层还是低层模块都可以被很容易的复用,这才是最好的方法。

为什么依赖了抽象,就不怕更改了呢?

  里氏替换原则:子类型必须能够替换掉它的父类型。只有当子类型能够替换掉父类型,软件单位的功能不受到影响时,父类才能真正被复用,而子类也能再父类的基础上增加新的行为。鸟是父类,可以飞,但是企鹅不会飞,所以企鹅就不能是鸟的子类。

  

 

转载于:https://www.cnblogs.com/amywechat/p/4917364.html

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值