支付宝、京东支付场景之策略模式实战
我是「猿碼天地」,一個熱愛技術、熱愛編程的IT猿。技術是開源的,知識是共享的!
寫作是對自己學習的總結和記錄,如果您對 Java、分布式、微服務、中間件、Spring Boot、Spring Cloud等技術感興趣,可以關注我的動態,我們一起學習,一起成長!
用知識改變命運,讓家人過上更好的生活,互聯網人一家親!
——公眾號《猿碼天地》
設計模式
設計模式(Design pattern)代表了最佳的實踐,通常被有經驗的面向對象的軟件開發人員所采用。設計模式是軟件開發人員在軟件開發過程中面臨的一般問題的解決方案。這些解決方案是眾多軟件開發人員經過相當長的一段時間的試驗和錯誤總結出來的。
必須清楚應用設計模式目的
1、易擴展,易維護
2、少改代碼,不改代碼
策略模式核心思想
策略模式的核心思想是在一個計算方法中把容易變化的算法抽出來作為“策略”參數傳進去,從而使得新增策略不必修改原有邏輯。??
即:創建表示各種策略的對象和一個行為隨著策略對象改變而改變的 context 對象。
實現步驟
1、不同策略實現同一個接口,即定義一個策略接口。?
2、不同策略定義一系列的算法,把它們一個個封裝起來, 并且使它們可相互替換。?
3、定義實現策略的策略上下文。
實例講解
源碼獲取方式:由于實戰源碼較多,如需獲取源碼,請關注公眾號"猿碼天地",回復“設計模式”即可獲取源碼。
example1 應用于商場打折場景
假設網站針對普通會員、Prime會員有不同的折扣,同時活動期間還有一個滿100減20的活動,這些就可以作為策略實現。??
1、先定義打折策略接口:DiscountStrategy接口
2、實現各種策略
普通用戶策略:UserDiscountStrategy類
滿減策略:OverDiscountStrategy類
Prime會員策略:PrimeDiscountStrategy類?
3、新建一個策略上下文:DiscountContext類??
4、新建測試類:Test類
調用方必須首先創建一個DiscountContext,并指定一個策略(或者使用默認策略),即可獲得折扣后的價格。
example2 應用于支付寶和京東支付場景
假設第三方支付平臺需要對接支付寶、京東支付,怎樣使用策略模式進行支付呢???
1、先定義支付策略接口:Payment接口
2、實現支付寶和京東各自的支付策略
阿里支付策略:AliPayment類
京東支付策略:JDPayment類
3、定義支付策略上下文:PayContext類
4、新建測試Test類,創建一個策略上下文對象,調用各自支付策略。
優點和缺點
優點:?
1、算法可以自由切換。?
2、避免使用多重條件判斷。?
3、擴展性良好。?
缺點:?
1、策略類會增多。?
2、所有策略類都需要對外暴露。?
使用總結
1、策略模式是為了允許調用方選擇一個算法,從而通過不同策略實現不同的計算結果。?
2、通過擴展策略,不必修改主邏輯,即可獲得新策略的結果。??
掃描二維碼關注公眾號 : 猿碼天地
你多學一樣本事,就少說一句求人的話,現在的努力,是為了以后的不求別人,實力是最強的底氣。記住,活著不是靠淚水博得同情,而是靠汗水贏得掌聲。
——《寫給程序員朋友》
總結
以上是生活随笔為你收集整理的支付宝、京东支付场景之策略模式实战的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 考勤助手——数据库3.0版本
- 下一篇: test blog