開放-封閉原則(open closed principle,ocp):軟體實體(類、模組、函式等),應該可以擴充套件,但是不可修改。這個原則有兩個特徵:對於擴充套件是開放的(open for extension);對於更改是封閉的(closed for modification)。其目的是:
在面對需求的改變時,軟體設計應保持相對穩定,從而使系統可以在第乙個版本以後不斷推出新的版本。即面對需求,對程式的改動是通過增加新**進行的,而不是更改現有的**,這就是「開放-封閉原則」的精神所在。
無論模組是多麼的「封閉」,都會存在一些無法對之封閉的變化。既然不可能完全封閉,設計人員必須對於他設計的模組應該對哪種變化封閉做出選擇。他必須先猜測出最有可能發生的變化種類,然後構造抽象來隔離那些變化。
在變化發生時立即採取行動:在最初編寫**時,假設變化不會發生;當變化發生時,建立抽象來隔離以後發生的同類變化。
我們希望的是在開發工作展開不久就知道可能發生的變化。查明可能發生的變化所等待的時間越長,要建立正確的抽象就越困難。
開放一封閉原則是物件導向設計的核心所在,遵循這個原則可以帶來物件導向技術所聲稱的巨大好處,即可維護、可擴充套件、可復用、靈活性好。開發人員應該僅對程式中呈現出頻繁變化的那些部分做出抽象,然而,對於應用程式中的每個部分都刻意地進行抽象同樣不是乙個好主意。拒絕不成熟的抽象和抽象本身一樣重要。
開放封閉原則 大話設計模式
在今天,讀書有時是件 麻煩 事。它需要你付出時間,付出精力,還要付出乙份心境。僅以 大話設計模式 來祭奠那逝去的 開放封閉原則有兩個特性 對於擴充套件是開放的,對於更改是關閉的。無論模組多麼的 封閉 都有一些無法對之封閉的變化。既然不可能完全封閉,技術人員必須對他設計的模組應該對那種變化封閉做出選擇...
大話設計模式之 開放,封閉原則
1 開放 封閉原則,是說軟體實體 類 模組 方法等等 應該可以擴充套件,但是不可以修改 2 對於擴充套件時開放的,對於更改時封閉的。面對需求的改變,可以保持相對的穩定,從而使得系統可以再第乙個版本後可以不斷的推出新版本 3 無論模組時多麼的封閉,都會存在一些無法對之封閉的變化。既然不可能完全封閉,設...
設計模式原則 開放 封閉原則
定義 軟體實體應該是可以擴充套件,但是不可修改,對擴充套件開放,對更改封閉 場景 某公司需要招聘3類員工,分別是 主管,程式設計師,銷售。公司根據不同的員工的需求,配置不同的資源。比如程式設計師應該配台電腦。首先定義乙個 員工型別 列舉 using system using system.colle...