国产精品久久久aaaa,日日干夜夜操天天插,亚洲乱熟女香蕉一区二区三区少妇,99精品国产高清一区二区三区,国产成人精品一区二区色戒,久久久国产精品成人免费,亚洲精品毛片久久久久,99久久婷婷国产综合精品电影,国产一区二区三区任你鲁

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

不會有人不知道怎么優雅的替換if-else語句吧

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

掃碼添加小助手

加入工程師交流群

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

場景日常開發,if-else語句寫的不少吧??當邏輯分支非常多的時候,if-else套了一層又一層,雖然業務功能倒是實現了,但是看起來是真的很不優雅,尤其是對于我這種有強迫癥的程序“猿”,看到這么多if-else,腦袋瓜子就嗡嗡的,總想著解鎖新姿勢:干掉過多的if-else!!!本文將介紹三板斧手段:

優先判斷條件,條件不滿足的,邏輯及時中斷返回;

融入策略模式;

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

接下來先附上一段很久以前自己寫的業務代碼,核心邏輯就是在支付回調中根據用戶購買的價格包賦予用戶對應的權益(VIP視頻會員天數+抽獎機會次數)。我的天,太多if-else了……(看不清楚可以點擊圖片放大)

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

1.優先判斷條件,不滿足及時中斷

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

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

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

2.策略模式改造

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

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

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

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

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

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

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

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

編輯:jq

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 開發
    +關注

    關注

    0

    文章

    378

    瀏覽量

    42144

原文標題:三種方式,教你優雅的替換if-else語句!

文章出處:【微信號:harmonyos_developer,微信公眾號:harmonyos_developer】歡迎添加關注!文章轉載請注明出處。

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

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    組合導航不知道怎么選,看這里

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

    工業數據“采了白采”?有人物聯網藏著采集+分析的全套打法

    不少工廠老板都有過這種無奈:花幾萬塊裝了工業設備數據采集設備,買了數據采集軟件,最后卻只干了件 “存硬盤” 的活——產線數據堆了幾百G,既不知道能干嘛,也不會分析,活生生把 “金礦”當成了“垃圾
    的頭像 發表于 12-23 17:45 ?522次閱讀

    斷電時,你的后備電源真能啟動嗎?多數人不知道的UPS保養真相

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

    為什么ADA4530-1運放總是壞?

    這個運放的時候沒注意到GRD是做保護環用的,所以直接接了地,但是這應該只會導致沒有屏蔽漏電流的效果,不會道址運放總是壞不知道是什么原因,我用這個運放的時候是處在一個激光周圍,因為我要把激光打在
    發表于 11-28 16:15

    請問e203_exu_csr模塊里同時讀寫csr寄存器會不會有問題?

    模塊里的寄存器是用的sirv_gnrl_dfflr,同時讀寫的話,讀到的是新寫進去的值。csrrw這種指令會有問題 可能csrr csrw這種用法把這個問題掩蓋了。我沒環境驗證這個問題,只是自己在做csr寄存器的時候遇到了這個問題,所以想問下
    發表于 11-06 08:12

    現在流行來中國看賽博朋克

    中國以外的人不知道中國有多強
    的頭像 發表于 10-10 22:43 ?4490次閱讀
    現在流行來中國看賽博朋克

    工業數據連接器的穩定重要性你不會不知道

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

    基礎篇3:掌握Python中的條件語句與循環

    不同的條件執行不同的代碼塊。Python中的條件語句主要使用if、elif(else if的縮寫)和else關鍵字。 if語句 最簡單的條件語句
    發表于 07-03 16:13

    編譯錯誤: error: unrecognizable insn,不知道原因,請教!

    用start_gui.exe生成的代碼,再用SEGGER Embedded打開,編譯有錯,不知道是什么原因,請教各位大佬?
    發表于 06-23 14:45

    不知道怎么畫原理圖了

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

    如果主節點使用AD2433,從節點使用AD2428,會不會有什么風險點?

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

    家用路由器 vs 工業路由器:90%的人不知道的5大區別!工業級設備為何貴10倍?

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

    Mini LED電視屏幕不會選?業內人士說出關鍵,一文全了解

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

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

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

    搞SD卡log打印功能時,打印出來的每條指令后面不知道為啥會帶[0m后綴?

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