91欧美超碰AV自拍|国产成年人性爱视频免费看|亚洲 日韩 欧美一厂二区入|人人看人人爽人人操aV|丝袜美腿视频一区二区在线看|人人操人人爽人人爱|婷婷五月天超碰|97色色欧美亚州A√|另类A√无码精品一级av|欧美特级日韩特级

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

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

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

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

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

掃碼添加小助手

加入工程師交流群

來(lái)自:love1024.blog.csdn.net/article/details/104955363

場(chǎng)景日常開(kāi)發(fā),if-else語(yǔ)句寫(xiě)的不少吧??當(dāng)邏輯分支非常多的時(shí)候,if-else套了一層又一層,雖然業(yè)務(wù)功能倒是實(shí)現(xiàn)了,但是看起來(lái)是真的很不優(yōu)雅,尤其是對(duì)于我這種有強(qiáng)迫癥的程序“猿”,看到這么多if-else,腦袋瓜子就嗡嗡的,總想著解鎖新姿勢(shì):干掉過(guò)多的if-else?。。”疚膶⒔榻B三板斧手段:

優(yōu)先判斷條件,條件不滿足的,邏輯及時(shí)中斷返回;

融入策略模式;

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

接下來(lái)先附上一段很久以前自己寫(xiě)的業(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)擊圖片放大)

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

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

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

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

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

2.策略模式改造

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

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)雅了點(diǎn),但是還是沒(méi)和if-else徹底說(shuō)拜拜,且recharge()充值方法可單獨(dú)拎出來(lái),只需要根據(jù)priceCode實(shí)例化不同的策略對(duì)象即可:

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

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

接下來(lái)使用“工廠類+單例”來(lái)給代碼加點(diǎn)料:

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

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

編輯:jq

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

    關(guān)注

    0

    文章

    378

    瀏覽量

    42149

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

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

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

掃碼添加小助手

加入工程師交流群

    評(píng)論

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

    組合導(dǎo)航不知道怎么選,看這里

    單一導(dǎo)航難適配復(fù)雜作業(yè)?MEMS組合導(dǎo)航來(lái)幫你,通過(guò)融合衛(wèi)星定位與慣性測(cè)量技術(shù),以“1+1>2”優(yōu)勢(shì)破解全行業(yè)導(dǎo)航難題。 我司組合導(dǎo)航提供三種方案可選,從01到03到05,搭載從導(dǎo)航級(jí)到戰(zhàn)術(shù)級(jí)到消費(fèi)級(jí)MEMS陀螺儀與加速度計(jì),通過(guò)微機(jī)電技術(shù)集成在毫米芯片上,搭載衛(wèi)星模塊以及其他器件,尺寸僅有65mm*70mm*45.5mm,以下是三種方案詳細(xì)介紹: 超高精度方案—ER-GNSS/MINS-01 產(chǎn)品定位 一款擁有測(cè)繪級(jí)超高精度的組合導(dǎo)航,是市面上采用MEMS技術(shù)組合導(dǎo)航系統(tǒng)中
    的頭像 發(fā)表于 01-08 15:47 ?226次閱讀

    工業(yè)數(shù)據(jù)“采了白采”?有人物聯(lián)網(wǎng)藏著采集+分析的全套打法

    不少工廠老板都有過(guò)這種無(wú)奈:花幾萬(wàn)塊裝了工業(yè)設(shè)備數(shù)據(jù)采集設(shè)備,買了數(shù)據(jù)采集軟件,最后卻只干了件 “存硬盤” 的活——產(chǎn)線數(shù)據(jù)堆了幾百G,既不知道能干嘛,也不會(huì)分析,活生生把 “金礦”當(dāng)成了“垃圾
    的頭像 發(fā)表于 12-23 17:45 ?528次閱讀

    斷電時(shí),你的后備電源真能啟動(dòng)嗎?多數(shù)人不知道的UPS保養(yǎng)真相

    斷電那一刻,你的后備電源真的能頂上嗎?深夜,機(jī)房警報(bào)突然響起,屏幕瞬間熄滅——不是演習(xí),市電真的斷了。所有人的心都提到了嗓子眼,三秒后,服務(wù)器指示燈重新亮起,UPS電源的顯示屏穩(wěn)定地閃爍著運(yùn)行
    的頭像 發(fā)表于 12-05 13:37 ?1767次閱讀
    斷電時(shí),你的后備電源真能啟動(dòng)嗎?多數(shù)<b class='flag-5'>人不知道</b>的UPS保養(yǎng)真相

    為什么ADA4530-1運(yùn)放總是壞?

    這個(gè)運(yùn)放的時(shí)候沒(méi)注意到GRD是做保護(hù)環(huán)用的,所以直接接了地,但是這應(yīng)該只會(huì)導(dǎo)致沒(méi)有屏蔽漏電流的效果,不會(huì)道址運(yùn)放總是壞,不知道是什么原因,我用這個(gè)運(yùn)放的時(shí)候是處在一個(gè)激光周圍,因?yàn)槲乙鸭す獯蛟?/div>
    發(fā)表于 11-28 16:15

    請(qǐng)問(wèn)e203_exu_csr模塊里同時(shí)讀寫(xiě)csr寄存器會(huì)不會(huì)有問(wèn)題?

    模塊里的寄存器是用的sirv_gnrl_dfflr,同時(shí)讀寫(xiě)的話,讀到的是新寫(xiě)進(jìn)去的值。csrrw這種指令會(huì)有問(wèn)題 可能csrr csrw這種用法把這個(gè)問(wèn)題掩蓋了。我沒(méi)環(huán)境驗(yàn)證這個(gè)問(wèn)題,只是自己在做csr寄存器的時(shí)候遇到了這個(gè)問(wèn)題,所以想問(wèn)下
    發(fā)表于 11-06 08:12

    現(xiàn)在流行來(lái)中國(guó)看賽博朋克

    中國(guó)以外的人不知道中國(guó)有多強(qiáng)
    的頭像 發(fā)表于 10-10 22:43 ?4499次閱讀
    現(xiàn)在流行來(lái)中國(guó)看賽博朋克

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

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

    基礎(chǔ)篇3:掌握Python中的條件語(yǔ)句與循環(huán)

    不同的條件執(zhí)行不同的代碼塊。Python中的條件語(yǔ)句主要使用if、elif(else if的縮寫(xiě))和else關(guān)鍵字。 if語(yǔ)句 最簡(jiǎn)單的條件語(yǔ)句
    發(fā)表于 07-03 16:13

    編譯錯(cuò)誤: error: unrecognizable insn,不知道原因,請(qǐng)教!

    用start_gui.exe生成的代碼,再用SEGGER Embedded打開(kāi),編譯有錯(cuò),不知道是什么原因,請(qǐng)教各位大佬?
    發(fā)表于 06-23 14:45

    不知道怎么畫(huà)原理圖了

    某天,某實(shí)驗(yàn)室,幾位工程師在討論《原理圖設(shè)計(jì)規(guī)范》。一秒之前還很和諧,下一秒討論原理圖怎么畫(huà)的時(shí)候,大家的意見(jiàn)就分歧很大了。類似于“豆?jié){是喝甜的還是咸的”、“粽子里面是放棗子還是放肉”。原來(lái)畫(huà)電路圖時(shí),這樣的問(wèn)題,也有這么多?!1、電阻的表示方法你是第一種,還是第二種?中間是方框還是折線?方框做多大?現(xiàn)場(chǎng)一片混亂立馬分成N派。普通的電阻都這樣,這么多種電阻現(xiàn)
    的頭像 發(fā)表于 04-30 18:40 ?1001次閱讀
    <b class='flag-5'>不知道</b>怎么畫(huà)原理圖了

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

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

    家用路由器 vs 工業(yè)路由器:90%的人不知道的5大區(qū)別!工業(yè)級(jí)設(shè)備為何貴10倍?

    一、你的路由器“嬌氣”嗎? “家里的Wi-Fi又?jǐn)嗔?!”——這是許多家庭的日常抱怨。但你知道嗎?在工廠、電力、交通等關(guān)鍵領(lǐng)域,路由器哪怕宕機(jī)1分鐘都可能造成百萬(wàn)損失! 工業(yè)路由器 和家用路由器的差距
    的頭像 發(fā)表于 04-08 11:39 ?2990次閱讀
    家用路由器 vs 工業(yè)路由器:90%的<b class='flag-5'>人不知道</b>的5大區(qū)別!工業(yè)級(jí)設(shè)備為何貴10倍?

    Mini LED電視屏幕不會(huì)選?業(yè)內(nèi)人士說(shuō)出關(guān)鍵,一文全了解

    ,Mini LED電視該怎么選才不會(huì)踩坑?很多人根本不知道!其實(shí),對(duì)比度和亮度才是Mini LED的關(guān)鍵,受分區(qū)數(shù)量、峰值亮度、屏幕、控光技術(shù)等多個(gè)因素綜合影響,而其中很重要的一個(gè)點(diǎn)就是——屏幕, 屏幕對(duì)比度不高,亮度和分區(qū)再多也會(huì)受到影
    的頭像 發(fā)表于 03-19 09:31 ?1411次閱讀
    Mini LED電視屏幕<b class='flag-5'>不會(huì)</b>選?業(yè)內(nèi)人士說(shuō)出關(guān)鍵,一文全了解

    磁芯參數(shù)的介紹(可下載)

    其中的意思,比如下面的公式,里面的 Ae 與△B 有很多同學(xué)都不知道什么意思,可能記住了△B 一般取值是在 0.2T-0.3T,知道這樣選取就不會(huì)飽和了為了解決大
    發(fā)表于 03-14 14:11 ?2次下載

    搞SD卡log打印功能時(shí),打印出來(lái)的每條指令后面不知道為啥會(huì)帶[0m后綴?

    搞SD卡log打印功能時(shí),打印出來(lái)的每條指令后面不知道為啥會(huì)帶[0m后綴,如圖所示: 哪位大佬教一下怎么去
    發(fā)表于 03-12 06:17