依赖倒置原则
依赖倒置原则(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 结合