設計模式 開放 關閉原則

2021-06-17 01:22:17 字數 943 閱讀 4963

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

對於擴充套件時開放的,對於更改時關閉的。

怎樣的設計才能面對需求改變卻可以保持相對穩定,從而使系統可以在第一版本以後不斷推出新的版本。

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

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

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

希望在工作展開不久就知道可能發生的變化,查明可能發生變化所等待的時間越長,要建立正確的抽象就越困難。

開放-關閉原則是物件導向設計的核心所在。

遵循這一原則可以帶來物件導向所聲稱的的巨大好處,也就是可維護、可擴充套件、可服用、靈活性好。

程式設計師應該僅對程式中呈現頻繁變化的那些部分作出抽象,然而,對於程式中的每個部分都刻意地進行抽象同樣不是好主意。拒絕不成熟的抽象與抽象同等重要。

大話設計模式04 開放 關閉原則

1 開放 關閉原則 軟體實體 類 模組 函式等等 應該可以擴充套件,但是不可修改。2 面對需求,對程式的改動是通過增加新 進行的,而不是更改現有的 3 我們希望的是在開發工作展開不久就知道可能發生的變化。查明可能發生的變化鎖等待的時間越長,要建立正確的抽象就越困難。asd 4 開放 封閉原則是物件導...

物件導向設計原則 開放關閉原則

在前天寫的bolg中裡面講了設計中的一些臭味,那什麼才是乙個好的設計!乙個好的系統設計應該具有如下的性質 可擴充套件性 靈活性 可插入性。1 可擴充套件性 extensibility 容易新增新的功能 2 靈活性 fiexibility 修改平穩地發生 3 可插入性 pluggability 容易將...

設計模式原則 開放 封閉原則

定義 軟體實體應該是可以擴充套件,但是不可修改,對擴充套件開放,對更改封閉 場景 某公司需要招聘3類員工,分別是 主管,程式設計師,銷售。公司根據不同的員工的需求,配置不同的資源。比如程式設計師應該配台電腦。首先定義乙個 員工型別 列舉 using system using system.colle...