在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

解鎖新姿勢(shì):干掉過多的if-else!

Android編程精選 ? 來源:CSDN ? 作者:飯一碗 ? 2022-11-12 10:01 ? 次閱讀

場(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)擊圖片放大)

ace07e42-61c0-11ed-8abf-dac502259ad0.png

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

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

ad3aa1c4-61c0-11ed-8abf-dac502259ad0.pngad65e47e-61c0-11ed-8abf-dac502259ad0.png

2、策略模式改造

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

ad8555b6-61c0-11ed-8abf-dac502259ad0.pngad9c4b22-61c0-11ed-8abf-dac502259ad0.pngadadb4fc-61c0-11ed-8abf-dac502259ad0.pngadbfe0f0-61c0-11ed-8abf-dac502259ad0.pngadd997c0-61c0-11ed-8abf-dac502259ad0.png

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

ade6bdec-61c0-11ed-8abf-dac502259ad0.png

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

接下來使用"工廠類+單例"來給代碼加點(diǎn)料:

ae0104e0-61c0-11ed-8abf-dac502259ad0.pngae2d21a6-61c0-11ed-8abf-dac502259ad0.png






審核編輯:劉清

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 中斷
    +關(guān)注

    關(guān)注

    5

    文章

    904

    瀏覽量

    42589

原文標(biāo)題:三種新姿勢(shì):幫你干掉過多的if-else

文章出處:【微信號(hào):AndroidPush,微信公眾號(hào):Android編程精選】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    十個(gè)精選優(yōu)質(zhì)直播,工程師們最喜歡看哪一個(gè)?

    開啟工程師學(xué)習(xí)之旅,解鎖學(xué)習(xí)新姿勢(shì),贏取開開學(xué)獎(jiǎng)勵(lì)
    的頭像 發(fā)表于 02-27 17:56 ?0次閱讀

    C語言中if語句、if-else語句和switch語句詳解

    在C語言中,有三種條件判斷結(jié)構(gòu):if語句、if-else語句和switch語句。
    發(fā)表于 08-18 16:36 ?1.3w次閱讀
    C語言中if語句、<b class='flag-5'>if-else</b>語句和switch語句詳解

    煉獄傳奇-if_else與case之戰(zhàn)

    Verilog HDL語言中存在兩種分支語言:● if-else 條件分支語句● case 分支控制語句1. if-else條件分支語句if-else 條件分支語句的作用是根據(jù)指定的判斷條件是否滿足
    發(fā)表于 03-31 09:51

    解鎖了這些姿勢(shì)!你就可以嘿!嘿!嘿!

    ”公眾號(hào),并且下載“電子發(fā)燒友”APP,截圖帶微信號(hào)回本帖! 解鎖上方任意姿勢(shì)的小伙伴們,趕緊掃描下方的二維碼,發(fā)送你的論壇用戶名驗(yàn)證進(jìn)群哦!活動(dòng)時(shí)間:2016-1-25—2016-2-1紅包發(fā)多少?看
    發(fā)表于 01-25 13:55

    Proteus之if-else語句的應(yīng)用

    Proteus之if-else語句的應(yīng)用,很好的Proteus資料,快來學(xué)習(xí)吧。
    發(fā)表于 04-18 14:49 ?0次下載

    特倫托大學(xué)與Inria合作:使用GAN生成人體的新姿勢(shì)圖像

    使用GAN(對(duì)抗生成網(wǎng)絡(luò))生成人體的新姿勢(shì)圖像。研究人員提出的可變形跳躍連接和最近鄰損失函數(shù),更好地捕捉了局部的紋理細(xì)節(jié),緩解了之前研究生成圖像模糊的問題,生成了更可信、質(zhì)量更好的圖像。
    的頭像 發(fā)表于 01-29 16:34 ?9928次閱讀
    特倫托大學(xué)與Inria合作:使用GAN生成人體的<b class='flag-5'>新姿勢(shì)</b>圖像

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

    設(shè)計(jì)背景:不管是在什么軟件和硬件語言,我們?cè)谖覀兊拇a中都或多或少的用到這兩條語句,if..else與case語句,今天我們將學(xué)習(xí)verilog中的這兩條語句,其實(shí)不管在什么語言中這兩個(gè)語句都是一樣
    的頭像 發(fā)表于 06-01 16:59 ?1.2w次閱讀
    FPGA學(xué)習(xí)系列:<b class='flag-5'>if-else</b>與case

    移動(dòng)4G網(wǎng)絡(luò),開啟看世界杯直播新姿勢(shì)

    江蘇移動(dòng)4G網(wǎng)絡(luò)對(duì)南通近海海域60公里實(shí)現(xiàn)了4G網(wǎng)絡(luò)連續(xù)覆蓋,為球迷開啟看世界杯直播新姿勢(shì)
    發(fā)表于 06-25 11:30 ?2004次閱讀

    從入門到高級(jí)替換If-Else的5種方法示例

    本文并不肯定或者否定哪一種寫法,僅僅為大家提供一些其他的編碼思路或者一些值得借鑒的點(diǎn)子。 設(shè)計(jì)更好的軟件,替換 If-Else 的 5 種方法,從入門到高級(jí)示例 If-Else 通常是一個(gè)糟糕的選擇
    的頭像 發(fā)表于 02-20 16:27 ?7153次閱讀
    從入門到高級(jí)替換<b class='flag-5'>If-Else</b>的5種方法示例

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

    又一層,雖然業(yè)務(wù)功能倒是實(shí)現(xiàn)了,但是看起來是真的很不優(yōu)雅,尤其是對(duì)于我這種有強(qiáng)迫癥的程序“猿”,看到這么多if-else,腦袋瓜子就嗡嗡的,總想著解鎖新姿勢(shì)干掉過多
    的頭像 發(fā)表于 07-28 15:46 ?1661次閱讀
    不會(huì)有人不知道怎么優(yōu)雅的替換<b class='flag-5'>if-else</b>語句吧

    關(guān)于Python中的“for-else”功能

    無論使用哪種編程語言,我們都會(huì)編寫“if-else”語句,但是“for-else”呢?
    發(fā)表于 09-26 14:44 ?703次閱讀

    什么是SystemVerilog-決策語句-if-else語句?

    決策語句(Decision statements)允許程序塊的執(zhí)行流程根據(jù)設(shè)計(jì)中信號(hào)的當(dāng)前值分支到特定語句。SystemVerilog有兩個(gè)主要的決策語句:if…else語句和case語句,使用關(guān)鍵字case、case…inside,casex和casez。
    的頭像 發(fā)表于 02-09 14:15 ?1540次閱讀
    什么是SystemVerilog-決策語句-<b class='flag-5'>if-else</b>語句?

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

    ;} 其實(shí),每次看到上面這種代碼,我都心里抓癢,完全可以先判斷 !condition ,干掉 else。 if (!condition) { return xxx;} // do s
    的頭像 發(fā)表于 06-22 10:01 ?985次閱讀
    代碼如何優(yōu)化掉多余的if/<b class='flag-5'>else</b>?

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

    相信大家日常開發(fā)中會(huì)經(jīng)常寫各種分支判斷語句,比如 if-else ,當(dāng)分支較多時(shí),代碼看著會(huì)比較臃腫,那么如何優(yōu)化呢? 1、什么是策略模式? Define a family
    的頭像 發(fā)表于 10-08 16:08 ?961次閱讀
    如何通過策略模式簡(jiǎn)化<b class='flag-5'>if-else</b>

    Verilog代碼:if-else和case的電路結(jié)構(gòu)和區(qū)別

    每個(gè)if-else就是一個(gè)2選1mux器。當(dāng)信號(hào)有明顯優(yōu)先級(jí)時(shí),首先要考慮if-else,但是if嵌套過多也會(huì)導(dǎo)致速度變慢;if語句結(jié)構(gòu)較慢,但占用面積小。 嵌套的if語句如果使用不當(dāng),就會(huì)
    的頭像 發(fā)表于 11-29 15:10 ?4684次閱讀
    主站蜘蛛池模板: 男人的视频网站 | 四虎影院最新网站 | 成人黄性视频 | 午夜欧美精品久久久久久久 | 亚洲国产成人精品久久 | 特黄特黄特色大片免费观看 | 欧美三级在线视频 | 国产午夜精品一区二区理论影院 | 五月婷婷久久综合 | 五月激情网站 | 亚洲欧美精品 | 天堂亚洲网 | abc欧美成人影院 | 日本三级黄 | 日本福利片午夜免费观着 | 久久久免费网站 | 精品国模| haodiaose在线精品免费观看 | 俄罗斯一级特黄黄大片 | 男女全黄做爰视频 | 欧美屁屁影院 | 六月婷婷综合 | 亚洲第一免费网站 | 免费视频网站在线看视频 | 国产激情视频一区二区三区 | 日韩欧美理论 | 无遮挡一级毛片 | 色婷婷在线观看视频 | 亚洲 丝袜 制服 欧美 另类 | 日鲁夜鲁鲁狠狠综合视频 | 999精品国产 | 六月丁香婷婷激情 | 性欧美极品另类 | 岛国中文字幕 | 最近2018中文字幕免费看手机 | 网www天堂资源在线 网红和老师啪啪对白清晰 网络色综合久久 | 99久久久精品免费观看国产 | 蜜色网 | 中文字幕在线观看一区二区 | 久久国产午夜精品理论篇小说 | 人人爽人人爱 |