# 依赖倒置原则-Dependence Inversion Principle
依赖倒置原则(Dependence Inversion Principle):**1,高层模块不应该依赖其低层模块,两者都因该依赖其抽象;2,抽象不应该依赖细节;3,细节应该依赖抽象**。
在Java语言中,抽象即使接口或者抽象类,这两者是不能被直接抽象画的,细节就是实现类,实现了接口或者抽象类的方法就是细节,其特点就是可以被实例化;高层模块就是调用端,底层模块就是实现类,依赖倒置的原则在Java语言中的体现就是:**模块之间的依赖通过抽象发生,实现类之间不发生直接的依赖关系,其依赖关系是通过接口或者抽象类产生的**,讲白了就是**面向接口编程,面向抽象编程**。
依赖倒置原则有如下要求:
* 模块之间的依赖通过抽象发生,实现类之间不应该直接发生依赖关系,其依赖还是通过接口与抽象类发生的
* 抽象类或者接口不应该依赖实现类
* 实现类依赖于接口与抽象类
**模块之间只需要定义相互的依赖接口就可以进行开发,从而实现并行开发,独立模块也可以进行独立测试,这一点是很重要的。**
一个模块依赖于另一个模块,或者一个类