設計原則(三)依賴倒置

轉載自: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,面向對象設計)的精髓之一。 設計

相關文章
相關標籤/搜索