依赖倒置原则
依赖倒置原则(Dependence Inversion Principle, DIP)原始定义是
High level modules should not depend upon low level modules.Both should depend upon abstractions.Abstractions should not depend upon details.Details should depend upon abstractions.
翻译过来就是:
1、高层模块不应该依赖低层模块,两者都应该依赖其抽象
2、抽象不应该依赖细节
3、细节应该依赖抽象
高层模块:通常只策略、业务场景
低层模块:也就是具体实现的细节
抽象:抽象就是指接口或抽象类,两者都是不能直接被实例化的
细节:就是实现类,实现接口或继承抽象类而产生的类就是细节
通俗一点:依赖倒置就是通过抽象(接口或抽象类)使各个类或者模块的实现彼此独立,互不影响,实现模块间的松耦合。
依赖倒置原则在编码中经常被使用,其
核心思想就是面向接口编程,而不是面向实现编程。
接口是指定义(规范、约束)与实现相分离,它是一种抽象,只要不修改接口声明,那么就可以放心使用,至于接口内部的实现无需关心。所以面向接口编程也可以简单理解为面向协议编程,实现者按照协议来工作。理解了面向接口编程也就理解了依赖倒置。