依赖倒置原则(Dependence Inversion Principle,DIP)是 Object Mentor 公司总裁罗伯特·马丁(Robert C.Martin)于 1996 年在C++ Report 上发表的文章。
依赖倒置原则的原始定义为:高层模块不该该依赖低层模块,二者都应该依赖其抽象;抽象不该该依赖细节,细节应该依赖抽象(High level modules shouldnot depend upon low level modules.Both should depend upon abstractions.Abstractions should not depend upon details. Details should depend upon abstractions)。其核心思想是:要面向接口编程,不要面向实现编程。html
我们在码代码的时候,必定都写过接口,写过抽象类,而后再进行实例化获得具体对象。编程
而后让实例化获得的具体对象依赖于接口或者抽象类,作到这点也就意味着本身的代码遵循了依赖倒置原则。架构
依赖倒置原则的主要做用以下。.net
依赖倒置原则是实现开闭原则的重要途径之一,它下降了客户与实现模块之间的耦合。
因为在软件设计中,细节具备多变性,而抽象层则相对稳定,所以以抽象为基础搭建起来的架构要比以细节为基础搭建起来的架构要稳定得多。这里的抽象指的是接口或者抽象类,而细节是指具体的实现类。
使用接口或者抽象类的目的是制定好规范和契约,而不去涉及任何具体的操做,把展示细节的任务交给它们的实现类去完成。设计
摘自htm
http://c.biancheng.net/view/1326.html对象