來自:love1024.blog.csdn.net/article/details/104955363
場景日常開發(fā),if-else語句寫的不少吧??當(dāng)邏輯分支非常多的時候,if-else套了一層又一層,雖然業(yè)務(wù)功能倒是實現(xiàn)了,但是看起來是真的很不優(yōu)雅,尤其是對于我這種有強迫癥的程序“猿”,看到這么多if-else,腦袋瓜子就嗡嗡的,總想著解鎖新姿勢:干掉過多的if-else?。?!本文將介紹三板斧手段:
優(yōu)先判斷條件,條件不滿足的,邏輯及時中斷返回;
融入策略模式;
策略模式+工廠+單例模式,錦上添花;
接下來先附上一段很久以前自己寫的業(yè)務(wù)代碼,核心邏輯就是在支付回調(diào)中根據(jù)用戶購買的價格包賦予用戶對應(yīng)的權(quán)益(VIP視頻會員天數(shù)+抽獎機會次數(shù))。我的天,太多if-else了……(看不清楚可以點擊圖片放大)
1.優(yōu)先判斷條件,不滿足及時中斷
這點非常容易理解,就是說在業(yè)務(wù)邏輯里面,先把不符合條件的給先過濾掉,而不是層層嵌套if-else判斷,結(jié)合代碼圖看一下:
2.策略模式改造
先用策略模式替換掉文章開頭講到的,用戶充值后根據(jù)價格包(付的多少錢)給用戶增加VIP天數(shù)及抽檢機會次數(shù)的邏輯,我這里就簡化成“根據(jù)-價格包區(qū)分給用戶增加不同的體育會員視頻VIP天數(shù)”這個動作來講解:
表面上看,代碼稍微優(yōu)雅了點,但是還是沒和if-else徹底說拜拜,且recharge()充值方法可單獨拎出來,只需要根據(jù)priceCode實例化不同的策略對象即可:
3.策略模式+工廠+單例模式,錦上添花
接下來使用“工廠類+單例”來給代碼加點料:
編輯:jq
-
開發(fā)
+關(guān)注
關(guān)注
0文章
373瀏覽量
41524
原文標(biāo)題:三種方式,教你優(yōu)雅的替換if-else語句!
文章出處:【微信號:harmonyos_developer,微信公眾號:harmonyos_developer】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
工業(yè)數(shù)據(jù)連接器的穩(wěn)定重要性你不會不知道吧?
如果主節(jié)點使用AD2433,從節(jié)點使用AD2428,會不會有什么風(fēng)險點?
使用DLPC4422+DLP650NE+三色LED,原理設(shè)計DLPC4422的LMPSTAT這個管腳懸空未接,會不會有什么影響?
DLP3010EVM-LC使用HDMI在電腦分屏全屏顯示圖片的情況下,和直接從燒錄的圖片投影會不會有什么不同?
ADS1220的AVDD接5V, DVDD接3.3V可不可以?

ADC12D1000Vcmo工作在輸出模式,如果接地了會不會有問題?
TPS54329連接手機充電時,audio噪聲挺大的怎么解決?
關(guān)于陶瓷電路板你不知道的事

請問TPA3116D2/TPA3110D2/TPA3113D2直接用24V供電會不會有被燒掉的危險?

評論