依赖倒置原则(Dependence Inversion Principle)

原始定义:

  • 高层模块不应该依赖低层模块,两者都应该依赖其抽象;
  • 抽象不应该依赖细节(实现类);
  • 细节应该依赖抽象。

依赖倒置原则在java语言中的体现:

  • 模块间的依赖通过抽象发生,实现类之间不发生直接的依赖关系,其依赖关系是通过接口或抽象类产生的;
  • 接口或抽象类不依赖于实现类;
  • 实现类依赖接口或抽象类

依赖的三种写法:

  • 构造函数传递依赖对象(构造函数注入)
  • Setter方法传递依赖对象(setter依赖注入)
  • 接口声明依赖对象(接口注入)

使用原则:依赖倒置原则的本质就是通过抽象(接口或抽象类)使各个类或模块的实现彼此独立,不互相影响,实现模块间的松耦合,我们怎么在项目中使用这个规则呢?只要遵循以下的几个规则就可以:

  • 每个类尽量都有接口或抽象类,或者抽象类和接口两者都具备
  • 变量的表面类型尽量是接口或者是抽象类
  • 任何类都不应该从具体类派生(只要不超过两层的继承是可以忍受的)
  • 尽量不要复写基类的方法
  • 结合里氏替换原则使用

文章链接 https://fangzongzhou.github.io/2021/02/14/计算机/设计模式/设计原则/依赖倒置原则/