依赖倒置到底倒了什么

依赖倒置原则是程序要依赖于抽象,不要依赖于具体实现。简单来说是要求对抽象进行编程,不要对实现进行编程。

要理解倒置,必须得明白什么是正置,正置是程序中只能用具体的实现,不是依赖抽象。依赖倒置原则是单在面对对象领域的原则,在面对对象领域之外是做不到这个原则的。比如面向过程是没有依赖抽象一说,只能是具体的实现。同时在我们现实生活中也是不能依赖抽象。比如我们吃水果,客观世界中,你要实现这个,只能依赖于具体的水果,梨子、苹果等,而不能找到一个既不是梨又不是苹果的一般的水果去依赖。你想要去倒置也无法倒置,所以我们说依赖具体才是正置的。

但在面向对象中有了接口interface关键字就可以做到只依赖抽象,比如人吃水果,在面向对象中Person.eat(Fruit)直接体现了依赖一个脱离具体的、抽象的水果,颠倒了关于依赖的认知(可以找到既不是梨又不是苹果的一般的水果去依赖)。

倒置的第二层含义在于颠倒了关于职责认定的认知。在依赖倒置原则中,高层需要低层的a实现。低层编写a,后面高层需要用B,低层模块要负责修改代码,改成B方式。原本是低层模块提供什么,高层模块就用什么,如果不满足需要。应由高层模块自己去想办法,但现在高层模块想用什么,反而由低层模块去负责修改。在以往的认知中,低层就提供这个方法,如果不满足需要。职责不在于提供方,而要需求方去想办法,但因为要符合依赖倒置原则,如果低层不能满足高层,就要由低层去想方设法满足高层,到时候满足不了业务要求,责任不在于高层,而在于低层。

再比如用户点击删除时,大部分web系统会弹窗提示确定是不是要删除。按理说,如果用户误删也是用户自己的问题,责任不在提供方,为什么要去考虑呢?如果我们能领悟到依赖倒置的妙处,就会认为用户误操作,责任也是在我,于是想方阻止这种情况发生,会额外实现弹窗提醒。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值