面象物件設計6大原則之二:開放封閉原則
開放封閉原則(OCP),The Open Closed Principle
定義
一個軟體的實體,包括類、方法、模組、應該對擴充套件開放,對修改關閉。
也就是說一個軟體的實體應該通過擴充套件的方式來修改變化,而不是修改已有實體原始碼。
開放封閉原則也是最基本需要遵守的原則,我們應該儘量保證系統的穩定性,我們在實現另外一個功能的時候不能修改之前已有的程式碼以免造成之前的功能出現BUG,帶來不必要的麻煩,所以開放封閉原則正是引導我們去設計一個穩定、方便擴充套件的系統。
在實際應用中我們一般會有以下幾種做法保證開放封閉原則:
1、抽象出一個介面或者抽象類,定義公共的方法,達到擴充套件的目的。
2、引數型別和引用型別使用介面或者抽象類,不能依賴實現類。
3、介面和抽象類不能修改,可以使用繼承介面或者抽象父類的形式達到擴充套件的目的。
這些應用看起來也並不複雜,無非是合理地定義介面和抽象類,不同的業務功能採用不同的實現類達到擴充套件,像設計模式中的策略模式、模板方式模式等都是開放封閉的原則。
總結一下,開放封閉原則具有以下幾個優點:
1、方便擴充套件,提高了可維護性。
2、不影響已有功能,提高了系統穩定性和減少了重複測試。
3、擴充套件之前的邏輯,提高了程式碼複用性。
相關文章
- 面象物件設計6大原則之三:里氏替換原則物件
- 面象物件設計6大原則之四:介面隔離原則物件
- 面象物件設計6大原則之五:依賴倒置原則物件
- 面象物件設計6大原則之一:單一職責原則物件
- 設計原則之【開放封閉原則】
- 開放封閉原則與規則引擎設計模式 - devgenius設計模式dev
- 設計模式六大原則(六)----開閉原則設計模式
- 物件導向設計的6大原則物件
- 設計模式的七大原則(5) --開閉原則設計模式
- 《JavaScript設計模式與開發實踐》原則篇(3)—— 開放-封閉原則JavaScript設計模式
- 開閉原則——物件導向程式設計原則物件程式設計
- 嘻哈說:開放封閉原則
- 設計原則:開閉原則(OCP)
- 設計模式“6”大原則!設計模式
- 物件導向設計的六大原則(SOLID原則)-——里氏替換原則物件Solid
- Laravel深入學習9 – 開放封閉原則Laravel
- 編碼最佳實踐——開放封閉原則
- Java的設計模式和6大原則Java設計模式
- 設計模式的七大原則(6) --迪米特法則設計模式
- S.O.I.L.D 之開放封閉原則
- Observer觀察者模式與OCP開放-封閉原則Server模式
- 理解面對物件的六大原則物件
- OCP原則——開閉原則
- 設計模式——六大原則設計模式
- 設計模式六大原則設計模式
- 設計模式-六大原則設計模式
- 軟體設計7大原則
- 設計模式七大原則設計模式
- 設計類六大原則
- 設計模式之7大原則設計模式
- 物件導向程式設計(OOP)的七大原則物件程式設計OOP
- 物件導向之 開閉原則物件
- 設計模式六大原則(四)----介面隔離原則設計模式
- 設計模式之開閉原則:對修改關閉,對擴充套件開放設計模式套件
- 七大軟體設計原則之一 | 開閉原則
- 開放封閉原則:打造更強大的軟體架構架構
- 設計模式六大原則(二)----裡式替換原則設計模式
- 設計模式的七大原則(4) --里氏替換原則設計模式