場(chǎng)景
日常開發(fā),if-else語句寫的不少吧??當(dāng)邏輯分支非常多的時(shí)候,if-else套了一層又一層,雖然業(yè)務(wù)功能倒是實(shí)現(xiàn)了,但是看起來是真的很不優(yōu)雅,尤其是對(duì)于我這種有強(qiáng)迫癥的程序"猿",看到這么多if-else,腦袋瓜子就嗡嗡的,總想著解鎖新姿勢(shì):干掉過多的if-else!!!
本文將介紹三板斧手段:
優(yōu)先判斷條件,條件不滿足的,邏輯及時(shí)中斷返回;
融入策略模式;
策略模式+工廠+單例模式,錦上添花;
接下來先附上一段很久以前自己寫的業(yè)務(wù)代碼,核心邏輯就是在支付回調(diào)中根據(jù)用戶購(gòu)買的價(jià)格包賦予用戶對(duì)應(yīng)的權(quán)益(VIP視頻會(huì)員天數(shù)+抽獎(jiǎng)機(jī)會(huì)次數(shù))。
我的天,太多if-else了……(看不清楚可以點(diǎn)擊圖片放大)
1、優(yōu)先判斷條件,不滿足及時(shí)中斷
這點(diǎn)非常容易理解,就是說在業(yè)務(wù)邏輯里面,先把不符合條件的給先過濾掉,而不是層層嵌套if-else判斷,結(jié)合代碼圖看一下:
2、策略模式改造
先用策略模式替換掉文章開頭講到的,用戶充值后根據(jù)價(jià)格包(付的多少錢)給用戶增加VIP天數(shù)及抽檢機(jī)會(huì)次數(shù)的邏輯,我這里就簡(jiǎn)化成"根據(jù)-價(jià)格包區(qū)分給用戶增加不同的體育會(huì)員視頻VIP天數(shù)"這個(gè)動(dòng)作來講解:
表面上看,代碼稍微優(yōu)雅了點(diǎn),但是還是沒和if-else徹底說拜拜,且recharge()充值方法可單獨(dú)拎出來,只需要根據(jù)priceCode實(shí)例化不同的策略對(duì)象即可:
3、策略模式+工廠+單例模式,錦上添花
接下來使用"工廠類+單例"來給代碼加點(diǎn)料:
審核編輯:劉清
-
中斷
+關(guān)注
關(guān)注
5文章
904瀏覽量
42589
原文標(biāo)題:三種新姿勢(shì):幫你干掉過多的if-else
文章出處:【微信號(hào):AndroidPush,微信公眾號(hào):Android編程精選】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
十個(gè)精選優(yōu)質(zhì)直播,工程師們最喜歡看哪一個(gè)?
C語言中if語句、if-else語句和switch語句詳解

煉獄傳奇-if_else與case之戰(zhàn)
解鎖了這些姿勢(shì)!你就可以嘿!嘿!嘿!
Proteus之if-else語句的應(yīng)用
特倫托大學(xué)與Inria合作:使用GAN生成人體的新姿勢(shì)圖像

FPGA學(xué)習(xí)系列:if-else與case

移動(dòng)4G網(wǎng)絡(luò),開啟看世界杯直播新姿勢(shì)
從入門到高級(jí)替換If-Else的5種方法示例

不會(huì)有人不知道怎么優(yōu)雅的替換if-else語句吧

關(guān)于Python中的“for-else”功能
什么是SystemVerilog-決策語句-if-else語句?

代碼如何優(yōu)化掉多余的if/else?

如何通過策略模式簡(jiǎn)化if-else

評(píng)論