通常,乙個成熟的軟體產品需要經過漫長和無數的測試才可以發布投入正常使用,在軟體的測試或者需求變化的過程中我們很可能會經常增加或者刪去某些功能,軟體的後期公升級也是乙個永恆的話題,無論是後期軟體的公升級還是測試過程當中功能的修改,都會使得我們對整個系統再次進行全面的測試,對原有的**進行大規模的修改,這樣做,不僅會耗費巨大的人力和物力,還會給原有的系統引入了新的錯誤,如何構建乙個可擴充套件的系統,這就要求我們在前期系統設計的時候遵循開閉原則。
要實現開閉原則,我們可以對系統作如下的考慮:
1)在設計的時候,對於擁有相似功能或者共同功能的類進行抽象化處理,將公用的功能都放在抽象類中,所有的操作都呼叫子類。
例如:有這樣乙個問題:我們有乙個使用者登入功能
package design;
public abstract class login
public void setuseranem(string useranem)
public string getpsaaword()
public void setpsaaword(string psaaword)
}
有乙個登入驗證的方法,我們可以考慮把它設計為抽象類(當然實際不會這樣做的,在這裡只是隨便舉個例),這樣做以後,在後期需求修改,我們只需要換子類來繼承這個抽象類即可:
package design;
public class mysqllogin extends login
}
package design;
public class oraclelogin extends login
}
通過例子,我們可以發現,我們在後期可以隨便更換抽象類的實現,這樣就可以給我們後期功能的變更提供了極大的便利,也避免了給原有的**引入大量打錯誤的問題。
2)多使用介面。
使用介面,這樣,我們就可以在後期很方便的對介面的實現進行修改,以適應系統需求變化,而可以避免給原有**引入大量的錯誤。
設計模式六大原則之開閉原則
定義 類 模組和函式應該對擴充套件開放,對修改關閉。問題由來 在軟體的生命週期內,因為變化 公升級和維護等原因需要對軟體原有 進行修改時,可能會給舊 中引入錯誤,也可能會使我們不得不對整個功能進行重構,並且需要原有 經過重新測試。解決方案 當軟體需要變化時,盡量通過擴充套件軟體實體的行為來實現變化,...
設計模式六大原則之開閉原則
這是在我大學學習過程中,老師給我講的第乙個設計原則 開閉原則,至今為止,我只記住了一句話 程式對修改關閉,對擴充套件開放。接下來得好好理解一下這句話 開閉原則是程式設計中最基礎 最重要的設計原則 基本介紹 1 乙個軟體實體如類,模組和函式應該對擴充套件開放 對於提供方來說 對修改關閉 對於使用方來說...
設計模式六大原則 開閉原則
定義 乙個軟體實體如類 模組和函式應該對擴充套件開放,對修改關閉。問題由來 在軟體的生命週期內,因為變化 公升級和維護等原因需要對軟體原有 進行修改時,可能會給舊 中引入錯誤,也可能會使我們不得不對整個功能進行重構,並且需要原有 經過重新測試。解決方案 當軟體需要變化時,盡量通過擴充套件軟體實體的行...