需求 針對店下商鋪,有這樣一個需求,對用戶客戶分為了普通客戶、vip客戶、超級vip用戶、專屬vip用戶4個等級,每當用戶購買商品時,針對不同的用戶等級和消費金額采取不同的打折優惠策略。在平常的開發當中,必然會出現多層的if-else嵌套判斷,先判斷用戶的等級再判斷用戶購買商品的消費金額 ...
策略模式和工廠模式的搭配使用可以很好地消除代碼if else的多層嵌套 需求 針對店下商鋪,有這樣一個需求,對用戶客戶分為了普通客戶 vip客戶 超級vip用戶 專屬vip用戶 個等級,每當用戶購買商品時,針對不同的用戶等級和消費金額采取不同的打折優惠策略。在平常的開發當中,必然會出現多層的if else嵌套判斷,先判斷用戶的等級再判斷用戶購買商品的消費金額。 弊端 以上的情況出現了多層的if ...
2019-11-02 14:18 1 3301 推薦指數:
需求 針對店下商鋪,有這樣一個需求,對用戶客戶分為了普通客戶、vip客戶、超級vip用戶、專屬vip用戶4個等級,每當用戶購買商品時,針對不同的用戶等級和消費金額采取不同的打折優惠策略。在平常的開發當中,必然會出現多層的if-else嵌套判斷,先判斷用戶的等級再判斷用戶購買商品的消費金額 ...
為了防止大量的if...else...或switch case代碼的出現,可以使用策略模式+工廠模式進行優化。 在我的項目當中,報表繁多,所以嘗試了這種方式進行優化報表的架構。代碼很簡單,如下: Factory工廠類 接口 實現類 測試 打印如下: 總結 ...
怎么把策略模式和工廠模式結合起來使用 如果大家對策略模式和工廠模式不是很了解的話可以先看前面文章策略模式:https://www.jianshu.com/p/958281936901工廠模式:https://www.jianshu.com/p/9078481e00c6 ...
無論工廠還是策略模式,每個具體工具類(工廠模式)/具體策略類(策略模式)中執行方法名都是一樣的,都和抽象工具(工廠模式)/抽象策略(策略模式)中方法名一樣的 1、簡單工廠類 思想:將創建何種工具交由工廠。將原本邏輯if...else...中“變”的部分抽離為具體工具類,調用方通過在工廠中 ...
Java設計模式中的策略模式(Strategy Patten)定義了一組算法,將每個算法都封裝起來,並且可使它們之間可以相互替換,在客戶端調用它們時可以互不影響。 策略模式主要由三個角色組成 1、抽象策略角色:通常是一個接口或抽象類實現,我們的具體策略類就是繼承或實現這個抽象角色 ...
Context中改動了一些代碼,和簡單工廠模式結合使用: 測試類:測試類中注釋掉的代碼是沒有結合簡單工廠模式的時候在客戶端寫的代碼。 測試 ...
策略模式,需要我們結合簡單工廠模式,更高級地用法可能需要我們掌握Java反射機制。簡單工廠模式我們在最早的時候介紹,我們也談到了一點Java的反射機制。借着學習策略模式的機會,我們順便復習一下簡單工廠模式和反射。 先說說何為策略模式。“策略”我的理解是,對一件事,有不同的方法去做,至於用何種 ...
策略模式實現方式 a) 提供公共接口或抽象類,定義需要使用的策略方法。(策略抽象類) b) 多個實現的策略抽象類的實現類。(策略實現類) c) 環境類,對多個實現類的封裝,提供接口類型的成員量,可以在客戶端中切換。 d) 客戶端 調用環境類 進行不同策略的切換。 策略模式的優點 ...