來自:love1024.blog.csdn.net/article/details/104955363
場景日常開發,if-else語句寫的不少吧??當邏輯分支非常多的時候,if-else套了一層又一層,雖然業務功能倒是實現了,但是看起來是真的很不優雅,尤其是對于我這種有強迫癥的程序“猿”,看到這么多if-else,腦袋瓜子就嗡嗡的,總想著解鎖新姿勢:干掉過多的if-else!!!本文將介紹三板斧手段:
優先判斷條件,條件不滿足的,邏輯及時中斷返回;
融入策略模式;
策略模式+工廠+單例模式,錦上添花;
接下來先附上一段很久以前自己寫的業務代碼,核心邏輯就是在支付回調中根據用戶購買的價格包賦予用戶對應的權益(VIP視頻會員天數+抽獎機會次數)。我的天,太多if-else了……(看不清楚可以點擊圖片放大)
1.優先判斷條件,不滿足及時中斷
這點非常容易理解,就是說在業務邏輯里面,先把不符合條件的給先過濾掉,而不是層層嵌套if-else判斷,結合代碼圖看一下:
2.策略模式改造
先用策略模式替換掉文章開頭講到的,用戶充值后根據價格包(付的多少錢)給用戶增加VIP天數及抽檢機會次數的邏輯,我這里就簡化成“根據-價格包區分給用戶增加不同的體育會員視頻VIP天數”這個動作來講解:
表面上看,代碼稍微優雅了點,但是還是沒和if-else徹底說拜拜,且recharge()充值方法可單獨拎出來,只需要根據priceCode實例化不同的策略對象即可:
3.策略模式+工廠+單例模式,錦上添花
接下來使用“工廠類+單例”來給代碼加點料:
編輯:jq
-
開發
+關注
關注
0文章
370瀏覽量
40920
原文標題:三種方式,教你優雅的替換if-else語句!
文章出處:【微信號:harmonyos_developer,微信公眾號:harmonyos_developer】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
![](https://file1.elecfans.com/web3/M00/00/40/wKgZO2dH0f2Aayo0AAlSj8diKjQ230.png)
關于陶瓷電路板你不知道的事
![關于陶瓷電路板你<b class='flag-5'>不知道</b>的事](https://file1.elecfans.com/web1/M00/F3/55/wKgaoWcV0RiAL9VOAAO9AEzLSVc368.png)
請問TPA3116D2/TPA3110D2/TPA3113D2直接用24V供電會不會有被燒掉的危險?
![](https://file1.elecfans.com/web2/M00/06/B4/wKgZombqL2uAVniLAAlt5GhA95Y839.png)
差分儀表運放的電阻電容混接會不會有問題?
![](https://file1.elecfans.com/web2/M00/F6/70/wKgZomaCEMuAcQ--AAPu_mo-E5c451.png)
![](https://file1.elecfans.com/web2/M00/F6/6C/wKgaomZ_eTaAMDloAAO8jSFdoog886.png)
![](https://file1.elecfans.com/web2/M00/F5/7F/wKgZomZ_dt-ACL8FAARQC0EkwXI622.png)
![](https://file1.elecfans.com/web2/M00/ED/35/wKgZomZqR-qAUJzcAAYL6atg5aE530.png)
![](https://file1.elecfans.com/web2/M00/ED/02/wKgaomZhHP-AcXGCAARxf9Birns375.png)
![](https://file1.elecfans.com/web2/M00/E8/AD/wKgZomZP_nqAfPTrAAbFiXEKWP8831.png)
評論