设计模式之依赖倒置原则

依赖倒置原则

依赖倒置原则(dependecy inversion principle)

  • High level modules should not depend upon law level modules. Both should depend upon abstraction modules. Abstraction shuold not depend upon detail. Detail should depend upon abstraction.
  • 高层模块不应该依赖底层模块,两者都要依赖其抽象
  • 抽象不能依赖细节
  • 细节应该依赖抽象
  • 依赖的三种方式
    • 作为构造函数
    • setter
    • 接口声明
  • 注意
    • 任何类都应该尽量有抽象类或者接口,或者二者都有
    • 变量表面尽量是抽象或者接口
    • 任何类都不应该从具体类派生
    • 尽量不要覆盖父类的方法(因为后期维护是个问题)
    • 与 LSP 结合