1.定義
一個軟件實體(如類、模塊、函數)應當對擴展開放,對修改關閉。
2.定義解讀
在項目開發的時候,都不能指望需求是確定不變化的,大部分情況下,需求是變化的。那么如何應對需求變化的情況?這就是開放-關閉原則要談的。
開放-封閉原則的思想就是設計的時候,盡量讓設計的類做好后就不再修改,如果有新的需求,通過新加類的方式來滿足,而不去修改現有的類(代碼)。那么在實際的項目開發中,是否能做到絕對的對修改關閉呢?答案一般也是否定的。既然這樣,那么就要求我們在開發前,去找出變化點,然后針對變化點構造抽象,隔離出這些變化。由此可見,實現開閉原則關鍵是抽象。
3.優點
- 具有靈活性,通過拓展一個功能模塊即可實現功能的擴充,不需修改內部代碼。
- 具有穩定性,表現在基本功能類不允許被修改,使得被破壞的程度大大下降。
4.總結
對於設計模式的六大設計原則,單一職責原則主要說明類的職責要單一;里氏替換原則強調不要破壞繼承體系;依賴倒置原則描述要面向接口編程;接口隔離原則講解設計接口的時候要精簡;迪米特法則告訴我們要降低耦合;開閉原則講述的是對擴展開放,對修改關閉。
六大設計原則並沒有很明顯的界限,當我們在遵守某一個設計原則的時候,可能也遵守了其他的設計原則。設計原則是后面要講述的設計模式的基礎,因此在本系列講述設計模式之前,對設計原則進行了解說。