轉載自:http://www.cnblogs.com/cbf4life/archive/2009/12/15/1624435.htmlhtml
依賴倒置原則(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。翻譯過來,包含三層含義:編程
高層模塊和低層模塊容易理解,每個邏輯的實現都是由原子邏輯組成的,不可分割的原子邏輯就是低層模塊,原子邏輯的再組裝就是高層模塊。那什麼是抽象,什麼又是細節呢?在Java語言中,抽象就是指接口或抽象類,二者都是不能直接被實例化的;細節就是實現類,實現接口或繼承抽象類而產生的類就是細節,其特色就是能夠直接被實例化,也就是能夠加上一個關鍵字new產生一個對象。依賴倒置原則在Java語言中的表現就是:翻譯
更加精簡的定義就是「面向接口編程」——OOD(Object-Oriented Design,面向對象設計)的精髓之一。 設計