設計模式 策略模式的實踐和應用(下)

2021-10-19 22:06:20 字數 1645 閱讀 9465

工欲善其事必先利其器,如果還不了解策略設計模式的,可以先學習一下策略設計模式

設計模式——策略模式的實踐和應用(上)

在生活中,我們也常常會遇到類似的情況,實現某乙個功能有多種方法,每種方法對應一種演算法,此時我們可以使用一種設計模式來實現不同的解決方案,同時也利於後期擴充套件,這就是今天要介紹的策略設計模式。

我們先來看一下幾個場景:

1、我們在網上購物時,有些商品參與了**活動,可以用不同的優惠券,有的**活動是二件九折,三件八折等等,有不同的優惠。

對於這些場景,用策略設計模式確實是乙個不錯的選擇,方便以後的擴充套件和維護。

首頁-猜你會買  ——————————————————————————————————————————

購物車-猜你喜歡  ——————————————————————————————————————————

在不同的場景中 ,有不同的推薦方案,在之前的**中,都是通過if判斷,來獲取不同資料來源,隨著推薦的場景越來多,if判斷顯得比較臃腫

本次我們基於策略模式對商品推薦業務進行優化

public inte***ce itemrecommendservice
首頁-猜你會買

@service

public class guessyoubuyserviceimpl implements itemrecommendservice

}

@service

public class popularrecommendserviceimpl implements itemrecommendservice

}

購物車-猜你喜歡

@service

public class guessyoulikeserviceimpl implements itemrecommendservice

推薦商品上下文

public class itemrecommendcontext 

public listrecommend()

}

三種不同的場景,推薦訪問controller

@restcontroller

public class itemrecommendcontroller

public listguesslikerecommend()

public listdetailrecommend()

}

隨著業務的擴充套件,後期的瀏覽歷史、熱賣推薦、瀏覽記錄、我的收藏,都是一樣的邏輯,改造完成後,大大方便了以後的擴充套件和維護。

使用策略模式對商品推薦進行優化,只是優化的第一步,還不是最後的實現,未完待續。。。

稍後貼上

設計模式應用三 策略模式

商場打折 策略可以簡單分為 原價購買 滿減 返利三種策略 系統的操作都要有日誌記錄,通常會把日誌記錄在資料庫裡面,方便後續的管理,但是在記錄日誌到資料庫的時候,可能會發生錯誤,比如暫時連不上資料庫了,那就先記錄在檔案裡面。日誌寫到資料庫與檔案中是兩種演算法,但呼叫方不關心,只負責寫就是 根據狀態進行...

設計模式 1 策略模式原理及實踐

策略模式作為一種軟體設計模式,指物件有某個行為,但是在不同的場景中,該行為有不同的實現演算法。比如每個人都要 交個人所得稅 但是 在美國交個人所得稅 和 在中國交個人所得稅 就有不同的算稅方法。策略模式的結構組成 抽象策略角色 策略類,通常由乙個介面或者抽象類實現。環境角色 持有乙個策略類的引用,最...

應用設計模式之策略模式(Reflection)

前兩篇文章介紹了結合靜態 和簡單工廠對策略進行應用,這裡介紹使用反射方式應用策略模式。定義反射策略類 author alex public class stratagemreflection catch instantiationexception e catch illegalacces cept...