a. 高層模組不應該依賴低層模組。兩個都應該依賴抽象。
b. 抽象不應該依賴細節。細節應該依賴抽象
物件導向開發時,為了使得常用**可復用,一般都會把這些**寫成許多的函式庫,我們在做專案時呼叫這些底層的**函式就可以了。比如我們做的專案大多低層模組。要訪問資料庫,所以我們就會把訪問資料庫的**寫成函式,每次做新的專案的時候去呼叫這些函式,這也叫做高層模組依賴。問題是我們要做新的專案時,發現業務的高層模組是一樣的,但是客戶卻希望用不同的資料庫或儲存資訊方式,這時候就麻煩了,低層與高層模組耦合度太高了,無法復用。
無論是高層模組還是低層模組,他們都依賴於抽象,具體一點就是介面或者抽象類,只要介面是穩定點的,那麼任何乙個更改都不會影響其他模組。
依賴倒置原則的核心就是介面,下面我們為車和司機定義兩個介面icar和idriver,**如下所示:
///
/// 汽車介面
///public
inte***ce icar
////// 司機介面
///public
inte***ce idriver
//實現介面
///
/// 司機a實現介面
///public
class drivera : idriver
}///
/// 司機b 實現介面
///public
class driverb : idriver
}///
/// bmw車實現汽車的介面
///public
class bmw : icar
}public
class benz : icar
}
客戶端**:
依賴倒轉原則原始碼
設計模式 依賴倒轉原則
依賴倒轉原則又稱依賴倒置原則 抽象不應該依賴細節,細節應該依賴於抽象。說白了,就是針對介面程式設計,不要針對實現程式設計。依賴倒置原則包含三層含義 1 高層模組不應該依賴低層模組,兩者都應該依賴其抽象 2 抽象不應該依賴細節 3 細節應該依賴抽象。看了上面的解釋相信大家會和我一樣會有一些疑問在腦海裡...
設計模式 依賴倒轉原則
依賴倒轉原則解釋 抽象不應該依賴於細節,細節應該依賴於抽象。說通俗點也就是針對介面程式設計,不要針對實現程式設計。我們在做開發的時候,要訪問資料庫,就會把訪問資料庫的 寫成函式,每次去開發的時候呼叫這些函式就行了,其實這就叫高層模組依賴底層模組,違反了依賴倒轉原則。當我們做乙個新專案的時候,發現業務...
設計模式 依賴倒轉原則
include using namespace std class benz boss bmw bmw void drivebenz void drivebmw private benz benz bmw bmw 此時若老闆還想開寶馬,必須還要再有乙個bmw bmw私有變數,還要定義相應的建構函式和...