文章詳情頁
Java如何優雅替換if-else語句
瀏覽:29日期:2023-02-10 10:08:39
目錄場景1.優先判斷條件,不滿足及時中斷2.策略模式改造3.策略模式+工廠+單例模式,錦上添花場景
日常開發,if-else語句寫的不少吧??當邏輯分支非常多的時候,if-else套了一層又一層,雖然業務功能倒是實現了,但是看起來是真的很不優雅,尤其是對于我這種有強迫癥的程序'猿',看到這么多if-else,腦袋瓜子就嗡嗡的,總想著解鎖新姿勢:干掉過多的if-else!!!
本文將介紹三板斧手段:
優先判斷條件,條件不滿足的,邏輯及時中斷返回; 融入策略模式; 策略模式+工廠+單例模式,錦上添花;接下來先附上一段很久以前自己寫的業務代碼,核心邏輯就是在支付回調中根據用戶購買的價格包賦予用戶對應的權益(VIP視頻會員天數+抽獎機會次數)。我的天,太多if-else了……(看不清楚可以點擊圖片放大)
這點非常容易理解,就是說在業務邏輯里面,先把不符合條件的給先過濾掉,而不是層層嵌套if-else判斷,結合代碼圖看一下:
先用策略模式替換掉文章開頭講到的,用戶充值后根據價格包(付的多少錢)給用戶增加VIP天數及抽檢機會次數的邏輯,我這里就簡化成'根據-價格包區分給用戶增加不同的體育會員視頻VIP天數'這個動作來講解:
表面上看,代碼稍微優雅了點,但是還是沒和if-else徹底說拜拜,且recharge()充值方法可單獨拎出來,只需要根據priceCode實例化不同的策略對象即可:
接下來使用'工廠類+單例'來給代碼加點料:
到此這篇關于Java如何優雅替換if-else語句的文章就介紹到這了,更多相關Java替換if-else語句內容請搜索好吧啦網以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持好吧啦網!
標簽:
Java
相關文章:
1. Java發送http請求的示例(get與post方法請求)2. JS繪圖Flot如何實現動態可刷新曲線圖3. springboot基于Redis發布訂閱集群下WebSocket的解決方案4. 關于探究python中sys.argv時遇到的問題詳解5. 基于android studio的layout的xml文件的創建方式6. CSS自定義滾動條樣式案例詳解7. 使用ProcessBuilder調用外部命令,并返回大量結果8. Intellij IDEA官方最完美編程字體Mono使用9. python使用requests庫爬取拉勾網招聘信息的實現10. IDEA項目的依賴(pom.xml文件)導入問題及解決
排行榜
