<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          三種方式,教你優(yōu)雅的替換if-else語句!

          共 1346字,需瀏覽 3分鐘

           ·

          2021-08-06 20:09

          今日推薦
          Spring新版本拋棄JVM,可獨立部署,網(wǎng)友:要自立門戶???
          Nginx 常用配置清單
          這玩意比ThreadLocal叼多了,嚇得我趕緊分享出來。
          推薦一些chrome瀏覽器必裝的插件!
          40 個 SpringBoot 常用注解
          VSCode 花式玩法(摸魚)收藏一下 !

          來源:love1024.blog.csdn.net/article/details/104955363

          場景

          日常開發(fā),if-else語句寫的不少吧??當(dāng)邏輯分支非常多的時候,if-else套了一層又一層,雖然業(yè)務(wù)功能倒是實現(xiàn)了,但是看起來是真的很不優(yōu)雅,尤其是對于我這種有強(qiáng)迫癥的程序"猿",看到這么多if-else,腦袋瓜子就嗡嗡的,總想著解鎖新姿勢:干掉過多的if-else?。?!

          本文將介紹三板斧手段:

          • 優(yōu)先判斷條件,條件不滿足的,邏輯及時中斷返回;
          • 融入策略模式;
          • 策略模式+工廠+單例模式,錦上添花;

          接下來先附上一段很久以前自己寫的業(yè)務(wù)代碼,核心邏輯就是在支付回調(diào)中根據(jù)用戶購買的價格包賦予用戶對應(yīng)的權(quán)益(VIP視頻會員天數(shù)+抽獎機(jī)會次數(shù))。

          我的天,太多if-else了……(看不清楚可以點擊圖片放大)

          1.優(yōu)先判斷條件,不滿足及時中斷

          這點非常容易理解,就是說在業(yè)務(wù)邏輯里面,先把不符合條件的給先過濾掉,而不是層層嵌套if-else判斷,結(jié)合代碼圖看一下:

          2.策略模式改造

          先用策略模式替換掉文章開頭講到的,用戶充值后根據(jù)價格包(付的多少錢)給用戶增加VIP天數(shù)及抽檢機(jī)會次數(shù)的邏輯,我這里就簡化成"根據(jù)-價格包區(qū)分給用戶增加不同的體育會員視頻VIP天數(shù)"這個動作來講解:

          表面上看,代碼稍微優(yōu)雅了點,但是還是沒和if-else徹底說拜拜,且recharge()充值方法可單獨拎出來,只需要根據(jù)priceCode實例化不同的策略對象即可:

          3.策略模式+工廠+單例模式,錦上添花

          接下來使用"工廠類+單例"來給代碼加點料:

          Java網(wǎng)站推薦:www.java1000.com,網(wǎng)站包括Java基礎(chǔ)、進(jìn)階、源碼、面試等各個系列文章,歡迎瀏覽!

          Github倉庫推薦

          https://github.com/OUYANGSIHAI/JavaInterview,復(fù)制鏈接直達(dá),該倉庫是本人面試一年的面試記錄與分享,相信對你有一定的幫助!


          推薦文章


          1、14個項目!

          2、GitHub 上 6 款牛哄哄的后臺模板

          3、推薦幾個前后端分離項目!

          4、一個Github項目搞定微信、QQ、支付寶等第三方登錄

          5、一款基于 Spring Boot 的現(xiàn)代化社區(qū)(論壇/問答/社交網(wǎng)絡(luò)/博客)


          更多項目源碼


          1、推薦兩個項目!

          2、重磅推薦:一套開源的網(wǎng)校系統(tǒng),無論是自建網(wǎng)校還是接副業(yè)都很方便

          3、一款基于 Spring Boot 的現(xiàn)代化社區(qū)(論壇/問答/社交網(wǎng)絡(luò)/博客)

          4、13K點贊都基于 Vue+Spring 前后端分離管理系統(tǒng)ELAdmin,大愛

          5、想接私活時薪再翻一倍,建議根據(jù)這幾個開源的SpringBoot

          瀏覽 49
          點贊
          評論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報
          評論
          圖片
          表情
          推薦
          點贊
          評論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  99精品免费观看 | 亚洲欧美动漫中文字幕 | 日韩一级无码毛片 | 97人妻人人操 | 国产足交在线播放 |