設計模式六大原則(6) 開閉原則

2021-07-03 16:23:22 字數 682 閱讀 6424

定義:乙個軟體實體如類、模組和函式應該

對擴充套件開放,對修改關閉

。問題由來:在軟體的生命週期內,因為變化、公升級和維護等原因需要對軟體原有**進行修改時,可能會給舊**中引入錯誤,也可能會使我們不得不對整個功能進行重構,並且需要原有**經過重新測試。

解決方案:當軟體需要變化時,盡量通過擴充套件軟體實體的行為來實現變化,而不是通過修改已有的**來實現變化。

開閉原則是物件導向設計中最基礎的設計原則

,它指導我們如何建立穩定靈活的系統。開閉原則可能是設計模式六項原則中定義最模糊的乙個了,它只告訴我們對擴充套件開放,對修改關閉,可是到底如何才能做到對擴充套件開放,對修改關閉,並沒有明確的告訴我們。以前,如果有人告訴我「你進行設計的時候一定要遵守開閉原則」,我會覺的他什麼都沒說,但貌似又什麼都說了。因為開閉原則真的太虛了。

在仔細思考以及仔細閱讀很多設計模式的文章後,終於對開閉原則有了一點認識。其實,我們遵循設計模式前面5大原則,以及使用23種設計模式的目的就是遵循開閉原則。也就是說,

只要我們對前面5項原則遵守的好了,設計出的軟體自然是符合開閉原則的,這個開閉原則更像是前面五項原則遵守程度的「平均得分」,前面5項原則遵守的好,平均分自然就高,說明軟體設計開閉原則遵守的好

;如果前面5項原則遵守的不好,則說明開閉原則遵守的不好。

其實筆者認為,開閉原則無非就是想表達這樣一層意思:

用抽象構建框架,用實現擴充套件細節

設計模式六大原則(6) 開閉原則

定義 乙個軟體實體如類 模組和函式應該對擴充套件開放,對修改關閉。問題由來 在軟體的生命週期內,因為變化 公升級和維護等原因需要對軟體原有 進行修改時,可能會給舊 中引入錯誤,也可能會使我們不得不對整個功能進行重構,並且需要原有 經過重新測試。解決方案 當軟體需要變化時,盡量通過擴充套件軟體實體的行...

設計模式六大原則(6) 開閉原則

定義 乙個軟體實體如類 模組和函式應該對擴充套件開放,對修改關閉。問題由來 在軟體的生命週期內,因為變化 公升級和維護等原因需要對軟體原有 進行修改時,可能會給舊 中引入錯誤,也可能會使我們不得不對整個功能進行重構,並且需要原有 經過重新測試。解決方案 當軟體需要變化時,盡量通過擴充套件軟體實體的行...

設計模式六大原則(6) 開閉原則

摘自 分類 設計模式2012 02 27 08 48 26188人閱讀 舉報 設計模式 擴充套件框架 程式設計測試 定義 乙個軟體實體如類 模組和函式應該對擴充套件開放,對修改關閉。問題由來 在軟體的生命週期內,因為變化 公升級和維護等原因需要對軟體原有 進行修改時,可能會給舊 中引入錯誤,也可能會...