這是在我大學學習過程中,老師給我講的第乙個設計原則:開閉原則,至今為止,我只記住了一句話:程式對修改關閉,對擴充套件開放。接下來得好好理解一下這句話
開閉原則是程式設計中最基礎、最重要的設計原則
基本介紹:
(1)乙個軟體實體如類,模組和函式應該對擴充套件開放(對於提供方來說),對修改關閉(對於使用方來說)。用抽象構建框架,用實現擴充套件細節。
(2)當軟體需要變化時,盡量通過擴充套件軟體實體的行為來實現變化,而不是通過修改已有的**來實現變化。
(3)程式設計中遵循其它原則,以及使用設計模式的目的就是遵循開閉原則。
要求:實現乙個畫圖形的功能
分析:
1、優點:比較好理解,簡單易操作
2、缺點:違反了開閉原則(即對修改關閉(使用方),對擴充套件開放(提供方)),即當我們給類增加新功能的時候,盡量不修改**或盡可能少修改**。
可以發現,當新增畫三角形時,需要做如上述修改,修改的地方較多。
改進思路:將shape類改進為抽象類,並提供乙個抽象方法draw方法,讓子類去實現即可,這樣有新的圖形種類時,只需要讓新的圖形類繼承shape,並實現draw方法即可,使用方的**就不需要修改,滿足開閉原則。
分析:**滿足ocp原則,對修改關閉,對擴充套件開放
設計模式六大原則之開閉原則
通常,乙個成熟的軟體產品需要經過漫長和無數的測試才可以發布投入正常使用,在軟體的測試或者需求變化的過程中我們很可能會經常增加或者刪去某些功能,軟體的後期公升級也是乙個永恆的話題,無論是後期軟體的公升級還是測試過程當中功能的修改,都會使得我們對整個系統再次進行全面的測試,對原有的 進行大規模的修改,這...
設計模式六大原則之開閉原則
定義 類 模組和函式應該對擴充套件開放,對修改關閉。問題由來 在軟體的生命週期內,因為變化 公升級和維護等原因需要對軟體原有 進行修改時,可能會給舊 中引入錯誤,也可能會使我們不得不對整個功能進行重構,並且需要原有 經過重新測試。解決方案 當軟體需要變化時,盡量通過擴充套件軟體實體的行為來實現變化,...
設計模式六大原則 開閉原則
定義 乙個軟體實體如類 模組和函式應該對擴充套件開放,對修改關閉。問題由來 在軟體的生命週期內,因為變化 公升級和維護等原因需要對軟體原有 進行修改時,可能會給舊 中引入錯誤,也可能會使我們不得不對整個功能進行重構,並且需要原有 經過重新測試。解決方案 當軟體需要變化時,盡量通過擴充套件軟體實體的行...