防禦式程式設計

2021-08-20 03:53:30 字數 937 閱讀 6353

場景

**交易終端支援市中核算,必須需要處理當日的委託和成交資料,現系統的委託和成交在本地快取和遠端快取中各有乙份。

思路:核算優先使用本地快取,本地快取不存在那麼就(防禦式)取遠端快取。

實現

package demo.design.defensive;

/** *

* 專案:demo-design-defensive

* 場景:**交易終端支援市中核算,必須需要處理當日的委託和成交資料,

* 現系統的委託和成交在本地快取和遠端中各有乙份。

* 思路:核算優先支援本地快取,本地快取不存在那麼就(防禦式)取遠端快取。

* 日期:2023年5月21日

* 備註:

*/public class defensive

private static void dowithnearorder() catch (exception e)

}private static void dowithfarorder()

private static void dowithnearmatch() catch (exception e)

}private static void dowithfarmatch()

延伸

1.假設我們不考慮防禦式程式設計而根據實時的需要去決定使用本地或者遠端快取,那麼更簡潔的**如下:

dowithnearorder();

//dowithfarorder();

dowithnearmatch();

//dowithfarmatch();

好處是非常快速簡單,缺點是一旦需要對具體的業務邏輯做修改,很難強求其他的程式設計師去對已經注釋的**裡面的內容也做相應的調整並充分測試,者就導致將來需要從本地快取切換到遠端快取的時候,程式出現執行錯誤的情況。

防禦式程式設計

防禦式程式設計 防禦式程式設計的主要思想是 子程式應該不因傳入錯誤資料而被破壞,哪怕是由其他子程式產生的錯誤資料。更一般地說,其核心思想是要承認程式都會有問題,都需要修改,聰明的程式設計師應該根據這一點來程式設計序。我們心裡應該自始至終考慮各種各樣的錯誤處理機制 在區域性處理錯誤 使用錯誤碼來傳遞錯...

防禦式程式設計

檢查所有 於外部的資料的值,檢查輸入值的合法性,與我們在註冊資訊是的正規表示式類似。斷言一般用於開發和維護階段,斷言為真,程式正常執行,斷言為假,程式出錯。斷言只在開發階段被編譯到目標 中,在生產產品中不編譯進去。使用斷言的指導意見 斷言是用來檢查永遠不該發生的情況,比如我們對於年齡的檢查,年齡不能...

防禦式程式設計(二)

防禦式程式設計是提高軟體質量技術的有益輔助手段。防禦式程式設計的主要思想是 子程式應該不因傳入錯誤資料而被破壞,哪怕是由其他子程式產生的錯誤資料。這種思想是將可能出現的錯誤造成的影響控制在有限的範圍內。1.在非法輸入 invalid inputs 中保護你的程式 乙個好程式,在非法輸入的情況下,要麼...