Chapter04 開放 封閉原則

2022-08-13 04:54:09 字數 971 閱讀 9575

開放-封閉原則,是說軟體實體(類、模組、函式等等)應該可以擴充套件,但是不可修改。

這個原則其實是有兩個特徵,乙個是說,「對於擴充套件是開放的(open for extension)」,另乙個是說「對於更改是封閉的(closed for modification)」。

開放封閉原則可以使當需求改變時,可以保持程式的相對穩定,不至於讓程式推倒重來,並能使系統可以在第乙個版本以後不斷的推出新的版本。

無論模組是多麼的「封閉」,都會存在一些無法對之封閉的變化,既然不可能完全封閉,設計人員必須對於他設計的模組應該對哪種變化封閉做出選擇。他必須先猜測出最有可能發生的變化種類,然後構造抽象來隔離那些變化。

在我們最初編寫**時,假設變化不會發生。當變化發生時,我們就建立抽象類來隔離以後發生的同類變化。

面向需求,對程式的改動是通過新增新**進行的,而不是更改現有的**。

開放-封閉原則是物件導向設計的核心所在。遵循這個原則可以帶來物件導向的技術所聲稱的巨大好處,也就是可維護、可擴充套件、可復用、靈活性好。開放人員應該及你對程式中呈現出頻率變化的那些部分做出抽象,然而,對於應用程式中的每個部分都可以的進行抽象,同樣不會是乙個好主意,拒絕不成熟的抽象和抽象本身一樣重要,切記,切記。

在大話設計模式這本書中,舉例了客戶端與運算類的關係,我們的運算類是可擴充套件的,每增加乙個運算,就新增乙個運算類的子類,並在子類中具體實現運算。可擴充套件是開放的。但是對修改是封閉的,比如以前有個加法子類,但是現在又想把加法的實現重新推翻,那麼不能直接修改加法子類,而應該再建立個加法子類add1,讓使用者根據需求來呼叫兩個加法類中的乙個。謹記,十個字就夠了「對擴充套件開放,對修改封閉」

開放 封閉原則

開放 封閉原則 the open closed principle,簡稱ocp 或者叫開 閉原則,意思是說軟體實體 類 模組 函式等等 應該可以擴充套件,但是不可修改。即對於擴充套件時開放的 open for extension 對於更改是關閉的 closed for modification 這樣...

開放封閉原則

開放封閉原則 開放封閉原則 就是軟體實體 類 模組 函式等等 應該可以擴充套件,但是不可修改。這個原則有兩個特徵,乙個是說對於擴充套件是開放的,另乙個是說對於更改時封閉的。軟實體包括 1 專案或軟體產品中按照一定的邏輯規則劃分的模組。2 抽象和類。3 方法。無論模組是多麼的封閉,都會存在一些無法對之...

開放封閉原則

開放封閉原則對於擴充套件是開放的,對於修改是封閉的。所謂開放封閉原則就是軟體實體應該對外擴充套件開發,而對修改封閉。開放封閉原則是所有物件導向原則的核心,軟體設計本身所追求的目標就是封裝變化,降低耦合,而開放封閉原則正是對這一目標最直接的體現。例如之前部落格的計算程式中,起初如果我們想要乙個加法的程...