欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

java面向對象設計原則之開閉原則示例解析

 更新時間:2021年10月14日 10:43:53   作者:guoyp2126  
這篇文章主要介紹了java面向對象設計原則之開閉原則的示例解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪

概念

唯一不變的是不斷的變化,在軟件開發(fā)中應該對需求的變化持開放態(tài)度,我們要做的就是如何將這種變化對我們現(xiàn)有的成果帶來最小的沖擊。開閉原則直接面對面向對象程序的目標擴展性和可維護性,要求對擴展開放,對修改關閉;即在不修改原有代碼的情況下改變模塊的行為。該原則是面向對象程序設計的總原則,也是度量程序設計的好與壞的唯一標準

實現(xiàn)

開閉原則的實現(xiàn)策略主要在面向對象的封裝性和多態(tài)性的基礎上,利用面向對象的其他原則完成的。

1.使用多態(tài)機制解決問題。

如:遠程監(jiān)控系統(tǒng)使用數(shù)據(jù)傳輸使用427版本的協(xié)議,一年以后對427版本的協(xié)議進行了修正。設計時應該考慮的數(shù)據(jù)傳輸協(xié)議的可變性,抽象出具有報文解譯、編制、校驗等所有版本協(xié)議使用的通用方法,調(diào)用方針對接口進行編程即可,如上述示例設計類圖如下:

在這里插入圖片描述

調(diào)用方依賴于報文接口,報文接口是穩(wěn)定的,而不針對具體的427協(xié)議或427修正協(xié)議。利用接口多態(tài)技術,實現(xiàn)了開閉原則。除使用接口實現(xiàn)多態(tài)外,還可以使用繼承機制重置實現(xiàn)多態(tài)來完成,如:某一實現(xiàn)過程包括獲取數(shù)據(jù)、數(shù)據(jù)處理、數(shù)據(jù)存儲,其中獲取數(shù)據(jù)和存取數(shù)據(jù)不變,數(shù)據(jù)處理過程發(fā)生變化,則可以在子類中使用重置機制將數(shù)據(jù)處理方法進行重寫。使用多態(tài)技術實現(xiàn)的方式,均不修改原有代碼,只是增加一份新的實現(xiàn)類,完成了開閉原則。

2.降低耦合度, 將變化的代碼降到最低

如:系統(tǒng)界面上按鈕控件為方形按鈕,現(xiàn)在領導要求把所有的按鈕換成圓角按鈕,如何辦?
使用迪米特法則,在使用按鈕控件時,給其包外圍一層,增加一個按鈕包裝類,使得界面與按鈕控件脫耦,修改時只需修改包裝器類即可。其類圖如下:

在這里插入圖片描述

3. 遵循單一職責原則

職責越單一,封裝性越好,“開閉原則”越容易實現(xiàn)。

拓展

1.注意分支語句的使用。分支語句破壞開閉原則,當條件發(fā)生變化時,我們不得不修改代碼。解決辦法依然是使用多態(tài)機制,每個分支使用不同實現(xiàn)類,來解決問題。
2. 避免過度設計
百分之百的開閉原則很難達到,但要盡量符合開閉原則。在設計時對于將來可能會發(fā)生變化的部分實現(xiàn)面向接口的編程,同時對不可能或極小概率發(fā)生變化時的應該避免過度設計而造成的復雜性。

以上就是java面向對象設計原則之開閉原則示例解析的詳細內(nèi)容,更多關于java面向對象設計原則的資料請關注腳本之家其它相關文章!

相關文章

最新評論