Java设计模式–依赖倒置原则
说明:高层模块不要依赖低层模块。高层模块和低层模块应该通过抽象相互依赖。除此之外,抽象不要依赖具体的细节,具体实现细节依赖抽象(High-level modules should not depend on low-level models.Both models should depend on abstraction.In addition,abstractions should not depend on details.Details depend on abstractions)。
这里的高层模块,从代码角度来说就是调用者,底层模块就是被调用者。即调用者不要依赖于具体实现,而应该依赖于抽象,如Spring框架中的各种Aware接口,框架依赖于Aware接口给予具体的实现增加功能,具体的实现通过实现接口来获得功能。而具体的实现与框架之间并没有直接耦合。