依賴倒轉原則(Dependence Inversion Principle,簡稱DIP)講的是:
1)高層模塊不應該依賴底層模塊,兩個都應該依賴抽象。
2)抽象不應該依賴細節,細節應該依賴抽象。
依賴倒轉的另外一種表述是:要針對接口編程,不要針對實現編程。
也就是說,應該使用 java 接口或抽象 java 類進行變量的類型聲明、參量的類型聲明、方法的返回類型聲明、以及數據類型的轉換等;
不應該使用具體的 java 類型進行變量的類型聲明、參量的類型聲明、方法的返回類型聲明、以及數據類型的轉換等。
在面對對象中,兩個類可能發生的幾種耦合(依賴)關系:
1)零耦合 : 兩個類沒有發生耦合關系。
2)具體耦合: 具體耦合關系發生在兩個具體的類之間,經由一個類引用另一個類造成。
3)抽象耦合: 抽象耦合發生在一個具體類和一個抽象之間或者 JAVA 接口之間,使兩個必須發生關系的類之間存在最大的靈活性。
DIP(依賴倒轉原則)要求客戶端依賴抽象耦合。
傳統的過程性系統的設計傾向于使高層次的模塊依賴于低層次的模塊,抽象層次依賴于具體層次。
依賴倒轉原則就是要把這個錯誤的依賴關系倒轉過來,這也就是“依賴倒轉原則”的來由。
如下簡單的示意圖所示:

posted on 2012-08-04 16:18
fancydeepin 閱讀(637)
評論(0) 編輯 收藏