工廠模式+策略模式


一、定義:

策略模式是對算法的包裝,把使用算法的責(zé)任和算法本身分隔開,委派給不同的對象管理。策略模式通常把一系列的算法包裝

到一系列的策略類里面,作為一個抽象策略類的子類。

簡單來說就是就定義一個策略接口,子類策略去實(shí)現(xiàn)該接口去定義不同的策略。然后定義一個環(huán)境(Context,也就

是需要用到策略的對象)類,以策略接口作為成員變量,根據(jù)環(huán)境來使用具體的策略。

二、優(yōu)點(diǎn):

1、算法可以自由切換。

2、避免使用多重條件判斷。

3、擴(kuò)展性良好。

三、缺點(diǎn):

1、策略類會增多。

2、所有策略類都需要對外暴露。

四、 策略模式實(shí)戰(zhàn)

案例:結(jié)算價格計(jì)算,根據(jù)Vip不同等級進(jìn)行運(yùn)算

1、不同VIP優(yōu)惠價格分析

用戶在購買商品的時候,很多時候會根據(jù)Vip等級打不同折扣,尤其是在線商城中體現(xiàn)的淋漓盡致。我們這里也基于真實(shí)電商案例來實(shí)現(xiàn)VIP等級價格制:

Vip0->普通價格

Vip1->減5元

Vip2->7折

Vip3->5折

2、 代碼實(shí)現(xiàn)

(1)定義策略接口: Strategy

(2)定義Vip0策略: StrategyVipOne

(3)定義Vip1策略: StrategyVipTwo

(4)定義Vip2策略: StrategyVipThree

(5)定義策略工廠: StrategyFactory

(6)等級策略配置:修改application.yml,將如下策略配置進(jìn)去

strategy:

? strategyMap:

? ? ?1: strategyVipOne

? ? ?2: strategyVipTwo

? ? ?3: strategyVipThree

(7)測試

(8)總結(jié):常用VIP客戶打折問題,先定義一個策略接口,用于價格計(jì)算,然后定義幾個類vip0,vip1,vip2,實(shí)現(xiàn)策略接口,控制分別打幾折,然后定義一個策略工廠,根據(jù)不同的vip等級,獲取不同的策略實(shí)例。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容