天天看點

面向對象設計的重要原則:SOLID

SOLID是面向對象設計5大重要原則的首字母縮寫:

1、單一職責原則(SRP)

2、開放封閉原則(OCP)

3、裡氏替換原則(LSP)

4、接口隔離原則(ISP)

5、依賴倒置原則(DIP)

下面具體解釋一下每個原則:

1、單一職責原則(SRP)

表明一個類隻有一個職責,一個類就像容器一樣。它能添加任意數量的屬性、方法等。然而,如果你試圖讓一個類實作太多,很快這個類就會變得笨重,任意小的改變都會讓這個單一類的變化。當你改了這個類,為了不對現有系統造成影響,不得不重新測試甚至解決由此帶來的bug。SRP原則的核心是将整個問題分割成多個更小的部分,當某個小部分需要改變時,需要重新測試驗證的也隻有很小的一部分。

2、開放封閉原則(OCP)

表明一個類應該對外擴充開放,對修改關閉,這意味着一旦建立了一個類并且應用程式的其他部分開始使用它,而不應該修改它,因為很可能你的改變會引發系統的崩潰。如果需要一些額外功能,應該擴充這個類而不是修改它。使用這種方式,現有系統不會看到任何新變化的影響。同時,隻需要測試新建立的類。

3、裡氏替換原則(LSP)

表明派生的子類應該可替換基類,也就是說任何基類可以出現的地方,子類一定可以出現。值得注意的是,當你通過基礎實作多态行為時,如果派生類沒有遵守LSP,可能會讓系統引發異常。是以謹慎使用繼承,隻有确定是“is-a“的關系時才使用繼承。

4、接口隔離原則(ISP)

表明類不應該被強迫依賴他們不使用的方法,也就是說一個接口應該擁有盡可能少的行為,它是精簡的,也是單一的。

5、依賴倒置原則(DIP)

表明高層子產品不應該依賴低層子產品,相反,他們應該依賴抽象類或者接口。這意味着不應該在高層子產品中使用具體的低層子產品。因為這樣的華,高層子產品變得緊耦合低層子產品。這樣的話,如果修改了低層子產品,那麼高層子產品也會被修改。根據DIP原則,高層子產品應該依賴抽象(以抽象類或者接口的形式),低層子產品也是如此。通過面向接口(抽象類)程式設計,緊耦合被移除

繼續閱讀