OCP原則——開閉原則
OCP
英文:Open-Closed Principle
中文:開閉原則
是什麼
我們要讓程式碼同時滿足對擴充套件開放、對修改關閉著兩個屬性。
對擴充套件開放表示程式碼的行為可以擴充套件。
對修改關閉表示當對程式碼的行為進行擴充套件時,其他程式碼完全不受到影響。
程式碼如果同事滿足這兩個屬性,就可以在不影響既有程式碼的前提下擴充套件功能。
為什麼
不論什麼軟體,只要它還在生命週期內,就一定會發生變化。而且軟體的壽命遠比我們想象的要長。因此,我們設計的軟體要既能適應變化,又能保持長期的穩定。
這就要求程式碼能夠靈活應對變化,對擴充套件開放,對修改關閉,如果能滿足上述要求,就算需求發生變化,我們只要給程式碼新增新的行為,就能毫無風險的完成對軟體的修改。
怎麼做
我們要給程式碼新增介面。
在設計具有某項功能的模組時,如果讓模組的使用者客戶端直接呼叫模組的提供者伺服器,我們就可以說這個設計是死板的,因為在這種情況下,如果想使用其他伺服器,還需要修改客戶端。
因此,我們在客戶端和伺服器之間為模組的使用者設定“客戶端介面”,這個客戶端介面由伺服器實現。
這樣一來,在新增擁有新功能的伺服器時,只要該伺服器上有客戶端介面,客戶端就可以直接呼叫新伺服器,我們就不用再修改程式碼了,也就是說,我們可以在不修改當前程式碼的前提下新增新功能。
相關文章
- 設計原則:開閉原則(OCP)
- 開閉原則OCP與KISS簡單原則衝突嗎? - macerubMac
- 開閉原則
- 設計原則之【開放封閉原則】
- Observer觀察者模式與OCP開放-封閉原則Server模式
- 開閉原則——物件導向程式設計原則物件程式設計
- 設計模式六大原則(六)----開閉原則設計模式
- DesignPattern系列__05開閉原則
- 設計模式的七大原則(5) --開閉原則設計模式
- 七大軟體設計原則之一 | 開閉原則
- 程式碼質量-開閉原則
- 物件導向之 開閉原則物件
- java開閉原則是什麼?Java
- 《JavaScript設計模式與開發實踐》原則篇(3)—— 開放-封閉原則JavaScript設計模式
- 嘻哈說:開放封閉原則
- 面象物件設計6大原則之二:開放封閉原則物件
- 開放封閉原則與規則引擎設計模式 - devgenius設計模式dev
- Laravel深入學習9 – 開放封閉原則Laravel
- 編碼最佳實踐——開放封閉原則
- iOS 遵循開閉原則的實際案例討論iOS
- 設計原則-依賴反轉原則
- SOLDI原則之DIP:依賴倒置原則
- 設計原則之【介面隔離原則】
- 設計原則:介面隔離原則(ISP)
- oop原則OOP
- SOLID原則Solid
- 軟體設計原則—介面隔離原則
- 軟體設計原則—合成複用原則
- 設計原則之【單一職責原則】
- 設計原則之【依賴反轉原則】
- 設計原則之【裡式替換原則】
- S.O.I.L.D 之開放封閉原則
- 軟體開發六大原則(三)-里氏替換原則
- 物件導向設計的六大原則(SOLID原則)-——里氏替換原則物件Solid
- 軟體設計原則—依賴倒轉原則
- 設計模式之開閉原則:對修改關閉,對擴充套件開放設計模式套件
- 設計原則
- 《原則》總結