多個if-else代碼: 上面只統計了3個學習時間,如果我們要寫其他的學習時間就需要繼續添加if-else,如果業務很復雜,那么這個代碼看起來會很亂,不方便維護; 下面用策略模式和工廠模式優化該if-else; 1. 定義抽象策略角色(接口) 2. ...
一.實戰需求:redis key過期監聽 二.問題:大量key會造成監聽代碼臃腫 三.解決方案:使用策略模式 工廠模式代替if else 代碼: 第一部分:redis springboot配置 第二部分:監聽處理器 第三部分:策略接口 第四部分:工廠類 第五部分:任務處理類 ...
2021-09-07 18:39 0 204 推薦指數:
多個if-else代碼: 上面只統計了3個學習時間,如果我們要寫其他的學習時間就需要繼續添加if-else,如果業務很復雜,那么這個代碼看起來會很亂,不方便維護; 下面用策略模式和工廠模式優化該if-else; 1. 定義抽象策略角色(接口) 2. ...
需求: 假設有這么一個需求: 一個電商系統,當用戶消費滿1000 金額,可以根據用戶VIP等級,享受打折優惠。根據用戶VIP等級,計算出用戶最終的費用。 普通會員 不打折 白銀會員 優惠50元 黃金會員 8折 白金會員 優惠50元,再打7折 工廠+策略 ...
為了防止大量的if...else...或switch case代碼的出現,可以使用策略模式+工廠模式進行優化。 在我的項目當中,報表繁多,所以嘗試了這種方式進行優化報表的架構。代碼很簡單,如下: Factory工廠類 接口 實現類 測試 打印如下: 總結 ...
前言 在之前文章說到,簡單 if-else,可以使用 衛語句 進行優化。但是在實際開發中,往往不是簡單 if-else 結構,我們通常會不經意間寫下如下代碼: -------------------- 理想中的 if-else -------------------- public ...
一、需求 根據用戶vip等級來返回不同的價格,vip等級是不固定的,隨時可能要增加,價格也不是固定的。 二、常規的寫法 三、使用策略模式 3.1、定義策略接口 3.2、定義上下文 上下文持有策略接口的引用,將算法與調用者隔離。 3.3 ...
需求 針對店下商鋪,有這樣一個需求,對用戶客戶分為了普通客戶、vip客戶、超級vip用戶、專屬vip用戶4個等級,每當用戶購買商品時,針對不同的用戶等級和消費金額采取不同的打折優惠策略。在平常的開發當中,必然會出現多層的if-else嵌套判斷,先判斷用戶的等級再判斷用戶購買商品的消費金額 ...
策略模式和工廠模式的搭配使用可以很好地消除代碼if-else的多層嵌套 需求 針對店下商鋪,有這樣一個需求,對用戶客戶分為了普通客戶、vip客戶、超級vip用戶、專屬vip用戶4個等級,每當用戶購買商品時,針對不同的用戶等級和消費金額采取不同的打折優惠策略。在平常的開發當中,必然會 ...
最近完成了我們公司的公眾號開發,在微信消息路由選擇的時候一開始都是用if-else 來判斷,后面if-else月寫越多顯得十分的亂。在網上簡單查了一下解決方法,果然有不少干貨,感覺最經典最簡潔的還是使用策略模式來重構過多的if-else 選擇。 首先我們新建一個interface ...