设计原则--依赖反转原则

单一职责原则和开闭原则原理比较简单,但实践起来比较困难。但是依赖反转原则正好相反,理解起来比较困难,用起来比较简单。

  • “依赖反转”这个概念指的是“谁跟谁”的“什么依赖”被反转了?“反转”两个字该如何理解
  • 我们还经常听到另外两个概念:“控制反转”和“依赖注入”。这两个概念和“依赖反转”有什么区别和联系
  • 那Spring的IOC跟这些概念又有什么联系

 

1、控制反转

控制反转是一个比较笼统的设计思想,并不是一个具体的实现方法,一般指导框架层面的设计,SpringIOC中的“控制”指的是类与类之间依赖关系的创建,而“反转”是指没有使用框架之前,程序员自己创建类与类之间的依赖关系。在使用了框架之后,类与类之间依赖关系的创建从程序员“反转”给了Spring 框架。

 

2、依赖注入

依赖注入和控制反转恰好相反,是一种编程技巧。我们不通过new的方式在类中创建依赖关系。而是将依赖关系在外部创建好之后,通过构造函数,函数参数等方式注入给类来使用。依赖注入“基于接口,而非实现编程”,能够灵活的替换类与类之间的依赖关系。依赖注入提高的代码的扩展性,是“开闭原则”在编程中的一种实现方式。

 

3、依赖注入框架

我们通过依赖注入框架提供扩展点,简单配置一下所有需要的类及其类与类之间的依赖关系。就可以实现由框架自动创建对象、管理对象的生命周期、依赖注入等原本需要程序员来做的事情。

 

 

依赖反转原则,英文名:Dependency Inversion Principle,简称DIP。高层模块不要依赖底层模块,高层模块和底层模块应该通过抽象来互相依赖。除此之外,抽象不要依赖具体的实现细节,具体实现细节依赖抽象。

简单的说,调用者属于高层,被调用者属于底层。在平时的开发中,高层模块依赖底层模块是没有任何问题的。实际上,依赖反转原则跟上面的控制反转有些类似,主要是用来指导框架层面的设计

 

注:依赖反转原则主要是用来指导框架层面的设计

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值