天天看點

設計模式六大原則----------依賴倒置原則

設計模式總覽

依賴倒置原則(Dependence Inversion Principle)

該原則規定:

①高層子產品不依賴低層子產品。兩者都應該依賴抽象接口

②抽象不能依賴具體。而具體應該依賴抽象接口

此原則的目的是為了實作解耦。将依賴關系建立在高層,而低層用來做具體實作。因為高層相對穩定,不會經常變動,而具體實作則會經常變動。

其實該原則,在現實生活中也經常用到。以電腦cpu來說,主機闆廠商定好cpu引腳接口,然後不同的cpu廠商按照此接口來生成cpu。這樣對于使用者來說,隻需要買回cpu和主機闆,然後将cpu插入主機闆就行了,完全不用再去關心哪個廠的闆子配哪個廠的cpu。在這裡,cpu引腳插口就是oop中的抽象接口,cpu廠商按照此接口規則,生成出不同的“具體”cpu,每個型号的cpu就是一個“具體”。

案例分析:

媽媽給孩子讀故事書。

class mother
{
	public void Speek(Book book);
}

class Book
{
}
           

OK,搞定了。但是小孩天天聽故事書聽煩了,現在心血來潮,要聽報紙。這下問題來了,媽媽竟然隻會讀故事書,不會讀報紙啊,這不科學!!!

上面一個簡單的案例就反應出了依賴具體帶來的隐患。下面看看依賴抽象如何實作:

class IWords
{

}

class mother
{
	public void Speek(IWords book);
}

class Book : public IWords
{
}

class News : public IWords
{

}
           

OK,現在無論想聽什麼,隻需要拓展相應的類(派生自IWords)就行了,無需去修改其他原有的類。(呀呀,無意間實作了一個《開閉原則》案例)

繼續閱讀