Java如何優(yōu)雅替換if-else語(yǔ)句
日常開(kāi)發(fā),if-else語(yǔ)句寫(xiě)的不少吧??當(dāng)邏輯分支非常多的時(shí)候,if-else套了一層又一層,雖然業(yè)務(wù)功能倒是實(shí)現(xiàn)了,但是看起來(lái)是真的很不優(yōu)雅,尤其是對(duì)于我這種有強(qiáng)迫癥的程序'猿',看到這么多if-else,腦袋瓜子就嗡嗡的,總想著解鎖新姿勢(shì):干掉過(guò)多的if-else!!!
本文將介紹三板斧手段:
優(yōu)先判斷條件,條件不滿足的,邏輯及時(shí)中斷返回; 融入策略模式; 策略模式+工廠+單例模式,錦上添花;接下來(lái)先附上一段很久以前自己寫(xiě)的業(yè)務(wù)代碼,核心邏輯就是在支付回調(diào)中根據(jù)用戶購(gòu)買(mǎi)的價(jià)格包賦予用戶對(duì)應(yīng)的權(quán)益(VIP視頻會(huì)員天數(shù)+抽獎(jiǎng)機(jī)會(huì)次數(shù))。我的天,太多if-else了……(看不清楚可以點(diǎn)擊圖片放大)
這點(diǎn)非常容易理解,就是說(shuō)在業(yè)務(wù)邏輯里面,先把不符合條件的給先過(guò)濾掉,而不是層層嵌套if-else判斷,結(jié)合代碼圖看一下:
先用策略模式替換掉文章開(kāi)頭講到的,用戶充值后根據(jù)價(jià)格包(付的多少錢(qián))給用戶增加VIP天數(shù)及抽檢機(jī)會(huì)次數(shù)的邏輯,我這里就簡(jiǎn)化成'根據(jù)-價(jià)格包區(qū)分給用戶增加不同的體育會(huì)員視頻VIP天數(shù)'這個(gè)動(dòng)作來(lái)講解:
表面上看,代碼稍微優(yōu)雅了點(diǎn),但是還是沒(méi)和if-else徹底說(shuō)拜拜,且recharge()充值方法可單獨(dú)拎出來(lái),只需要根據(jù)priceCode實(shí)例化不同的策略對(duì)象即可:
接下來(lái)使用'工廠類(lèi)+單例'來(lái)給代碼加點(diǎn)料:
到此這篇關(guān)于Java如何優(yōu)雅替換if-else語(yǔ)句的文章就介紹到這了,更多相關(guān)Java替換if-else語(yǔ)句內(nèi)容請(qǐng)搜索好吧啦網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持好吧啦網(wǎng)!
相關(guān)文章:
1. 詳解瀏覽器的緩存機(jī)制2. CSS可以做的幾個(gè)令你嘆為觀止的實(shí)例分享3. XML入門(mén)的常見(jiàn)問(wèn)題(二)4. ASP實(shí)現(xiàn)加法驗(yàn)證碼5. 小技巧處理div內(nèi)容溢出6. XML入門(mén)精解之結(jié)構(gòu)與語(yǔ)法7. 低版本IE正常運(yùn)行HTML5+CSS3網(wǎng)站的3種解決方案8. 讀大數(shù)據(jù)量的XML文件的讀取問(wèn)題9. 概述IE和SQL2k開(kāi)發(fā)一個(gè)XML聊天程序10. javascript xml xsl取值及數(shù)據(jù)修改第1/2頁(yè)
