工欲善其事必先利其器,如果還不了解策略設計模式的,可以先學習一下策略設計模式
設計模式——策略模式的實踐和應用(上)
在生活中,我們也常常會遇到類似的情況,實現某乙個功能有多種方法,每種方法對應一種演算法,此時我們可以使用一種設計模式來實現不同的解決方案,同時也利於後期擴充套件,這就是今天要介紹的策略設計模式。
我們先來看一下幾個場景:
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...