chinese直男口爆体育生外卖, 99久久er热在这里只有精品99, 又色又爽又黄18禁美女裸身无遮挡, gogogo高清免费观看日本电视,私密按摩师高清版在线,人妻视频毛茸茸,91论坛 兴趣闲谈,欧美 亚洲 精品 8区,国产精品久久久久精品免费

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

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

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

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

5jek_harmonyos ? 來源:CSDN ? 作者:飯一碗 ? 2021-07-28 15:46 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

來自: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了……(看不清楚可以點擊圖片放大)

b20b1b9e-ecdb-11eb-a97a-12bb97331649.png

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

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

b493bb28-ecdb-11eb-a97a-12bb97331649.png

b51b978c-ecdb-11eb-a97a-12bb97331649.png

2.策略模式改造

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

b52a462e-ecdb-11eb-a97a-12bb97331649.png

b83ace38-ecdb-11eb-a97a-12bb97331649.png

b8500ce4-ecdb-11eb-a97a-12bb97331649.png

b85e8ff8-ecdb-11eb-a97a-12bb97331649.png

b87995dc-ecdb-11eb-a97a-12bb97331649.png

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

b898b7d2-ecdb-11eb-a97a-12bb97331649.png

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

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

b8a4a240-ecdb-11eb-a97a-12bb97331649.png

b8d5258c-ecdb-11eb-a97a-12bb97331649.png

編輯:jq

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

    關(guān)注

    0

    文章

    373

    瀏覽量

    41524

原文標(biāo)題:三種方式,教你優(yōu)雅的替換if-else語句!

文章出處:【微信號:harmonyos_developer,微信公眾號:harmonyos_developer】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

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

    工業(yè)數(shù)據(jù)連接器的穩(wěn)定重要性你不會不知道?

    我曾參與一家汽車零部件工廠的智能化改造項目,本以為升級設(shè)備就能大幅提升生產(chǎn)效率,卻因一時疏忽選用了穩(wěn)定性欠佳的工業(yè)數(shù)據(jù)連接器。試運行期間,生產(chǎn)線頻繁出現(xiàn)數(shù)據(jù)傳輸中斷,導(dǎo)致機械臂動作錯亂,生產(chǎn)出大量殘次品,直接經(jīng)濟損失高達(dá)數(shù)十萬元。這次教訓(xùn)讓我深刻明白,在工業(yè)領(lǐng)域,數(shù)據(jù)連接器的穩(wěn)定容不得半點馬虎。 工業(yè)數(shù)據(jù)連接器,作為工業(yè)設(shè)備間數(shù)據(jù)交互的核心樞紐,其穩(wěn)定性決定著整個工業(yè)生產(chǎn)系統(tǒng)能否正常運轉(zhuǎn)。不同于普通消
    的頭像 發(fā)表于 07-03 16:32 ?142次閱讀

    如果主節(jié)點使用AD2433,從節(jié)點使用AD2428,會不會有什么風(fēng)險點?

    如果主節(jié)點使用AD2433,從節(jié)點使用AD2428,會不會有什么風(fēng)險點?晚上找不到AD2433的數(shù)據(jù)手冊,感謝各位把遇到的問題提前預(yù)警一下。 萬分感謝!
    發(fā)表于 04-15 07:09

    使用DLPC4422+DLP650NE+三色LED,原理設(shè)計DLPC4422的LMPSTAT這個管腳懸空未接,會不會有什么影響?

    設(shè)計投影儀,使用DLPC4422+DLP650NE+三色LED,原理設(shè)計DLPC4422的LMPSTAT這個管腳懸空未接,會不會有什么影響
    發(fā)表于 02-26 06:57

    DLP3010EVM-LC使用HDMI在電腦分屏全屏顯示圖片的情況下,和直接從燒錄的圖片投影會不會有什么不同?

    我想知道使用HDMI在電腦分屏全屏顯示圖片的情況下,和直接從燒錄的圖片投影會不會有什么不同。 因為我在用普通的家用的投影時發(fā)現(xiàn)從HDMI分屏顯示的圖片比從U盤顯示的圖片效果要差。 圖片在分屏上全屏顯示,1280x720分辨率。
    發(fā)表于 02-21 06:22

    ADS1220的AVDD接5V, DVDD接3.3V可不可以?

    ADS1220的AVDD接5V, DVDD接3.3V可不可以。手冊只寫了AVDD 和DVDD的范圍,不知道他們的電壓不一樣會不會有問題
    發(fā)表于 12-02 07:49

    真的還有人不知道PH計有什么作用嗎?

    PH計
    jzyb
    發(fā)布于 :2024年11月28日 10:19:31

    ADC12D1000Vcmo工作在輸出模式,如果接地了會不會有問題?

    Vcmo引腳可作為輸出共模電壓1.25V也可以作為輸入信號控制模擬輸入是交流耦合還是直流耦合? 我如何判斷它是作為輸入還是輸出? 換句話說,他工作在輸出模式,如果我們接地了,會不會有問題?
    發(fā)表于 11-22 06:32

    DDC112U的clk和conv信號一定要同步嘛,不同步會不會有問題?

    DDC112U的clk和conv信號一定要同步嘛,不同步會不會有問題
    發(fā)表于 11-18 08:03

    TPS54329連接手機充電時,audio噪聲挺大的怎么解決?

    TPS54329不連接手機充電時,不會有噪聲。當(dāng)TPS54329連上后,audio噪聲挺大的。 目前覺得可能是因為 是信號地與充電地共地了,不知道怎么解決? 請指導(dǎo),謝謝!
    發(fā)表于 10-22 06:14

    關(guān)于陶瓷電路板你不知道的事

    陶瓷電路板(Ceramic Circuit Board),又稱陶瓷基板,是一種以陶瓷材料為基體,通過精密的制造工藝在表面形成電路圖形的高技術(shù)產(chǎn)品,快來看看哪些是您還不知道的事?
    的頭像 發(fā)表于 10-21 11:55 ?1011次閱讀
    關(guān)于陶瓷電路板你<b class='flag-5'>不知道</b>的事

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

    請問一下,TI的D類功放,都寫的電壓范圍為26V,我直接用24V供電會不會有被燒掉的危險?之前使用一個國產(chǎn)芯片仿3110的。標(biāo)的電壓是16V,用12V老是燒。TI的芯片不知道不會有類似問題。標(biāo)26V的直接上24V是否安全!
    發(fā)表于 10-15 08:17

    應(yīng)該不會有人不知道雙法蘭液位變送器的安裝說明?

    變送器
    jzyb
    發(fā)布于 :2024年09月18日 09:51:07

    差分儀表運放的電阻電容混接會不會有問題?

    我的電路如上圖所示,輸入端由外部接入,不接時就是懸空。 1)兩個1M電阻用于輸入懸空時保證輸出為0附近; 2)電容用作濾波退藕。 請問電阻電容這么混接會不會有問題,例如振蕩啥的?(外部輸入信號為直流。)
    發(fā)表于 09-10 08:23

    OPA4330能替換LMV324嗎?

    我放大的倍數(shù)是150左右,,,,,,,我在手冊中看到OPA4330的開環(huán)增益是100db,LMV324這個的開環(huán)增益沒有找到,,,,,,不知道能否替換,替換的效果會不會更好?
    發(fā)表于 09-02 07:05

    一個基準(zhǔn)源同時作為15個相同的OPA277的輸入,會不會有問題?

    一個基準(zhǔn)源同時作為15個相同的OPA277的輸入,會不會有問題?
    發(fā)表于 08-30 08:21