精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

Go設計模式實戰--用模版和策略模式應對多渠道多場景支付和營銷

開發 前端
隨著項目接入的支付渠道越來越多、支持的支付場景和營銷玩法越來越多,你的項目代碼該怎么開發呢?大多數情況下就是一個支付場景一個if 條件分支唄,甚至新接入的支付渠道也可以是一個大的 if 代碼分支、渠道的各種支付場景那就大分支里邊套小分支唄。

上一節給大家演示講解了訂單支付的業務流程中的各個步驟以及怎么在項目中進行微信支付的對接。不過現實的商品支付中一般會在收銀臺頁面讓用戶選擇以什么方式支付--是微信、支付寶或者是其他的什么支付、信用卡支付等等。

所以一般項目接入支付通道的時候不會只接入一種支付通道。這么干除了能避免依賴單一渠道的風險外,更多的還是因為互聯網公司常見的營銷玩法為了提高轉化率會高度依賴多渠道多場景支付,比如各種簽約支付、先用后付等等。

多場景支付的維護難度

隨著項目接入的支付渠道越來越多、支持的支付場景和營銷玩法越來越多,你的項目代碼該怎么開發呢?大多數情況下就是一個支付場景一個if 條件分支唄,甚至新接入的支付渠道也可以是一個大的 if 代碼分支、渠道的各種支付場景那就大分支里邊套小分支唄。

長此以往代碼的維護難度可想而之,到后期新加一個邏輯,為了保證上線不翻車,可能要把整個支付中的所有邏輯在測試階段都回歸一遍才敢上線。

那么有沒有什么辦法能讓這種代碼的發展別那么混亂,我希望給其中一個支付渠道的某類支付場景加了邏輯,測試時只回歸對應的場景即可,有什么好辦法嗎?

這就是本節要給大家介紹的兩個設計模式:模版模式和策略模式,我們通過把兩種設計模式結合起來的使用來解決這些問題。

大家看一些開源或者設計好的項目的代碼時會覺得好像它用了設計模式A,看了一會兒它咋又像設計模式B了,咋跟我學的設計模式的教程都不一樣?我想說的是,有這種感覺就對了,用設計模式解決實際問題,通常是多種設計模式綜合使用才能解決問題,單一設計模式能解決的問題還是太有限了。

設計思路

接下來我們進入正題,怎么使用模版模式和策略模式來設計項目,讓其以一個相對有序、可維護的發展趨勢來支撐多渠道多場景支付呢?

我們從兩個方面來思考這個問題:

  • 這么多支付渠道,支付場景他們每次執行過程中有哪些共同點--即可提煉出來的標準化步驟?
  • 找流程步驟中的可切步驟,有沒有可能這個步驟的實現方式從A切換到了B,代碼解決的流程就從A切換成了B?

如果你分析一通,發現沒有? 那不好意思,不是你分析的不對,就是這兩個模式確實用不上,那么咱就現有的代碼打打補丁,能用就行了,哈哈哈。

接下在咱再說一下為啥要兩種模式結合起來使用,其實很簡單,使用它們時的設計思路有以下幾點

  • 模版限定流程的具體步驟(注:以下步驟請根據要實現的流程提煉出來,并不局限下面幾種)
  1. 校驗請求,檢查必要參數
  2. 防抖防重,避免重復請求
  3. 準備流程中的必要參數:對于支付來說有訂單數據、用戶數據等
  4. 發起流程的關鍵步驟:支付流程就是發起相應的支付方式
  5. 生成響應
  • 策略決定應該怎么支付 (各種支付平臺的普通支付/簽約代扣/....),返回給客戶端什么樣的結果。

設計實現

說了這么多,我估計大家都有點懵了,沒辦法首先要給大家解釋清楚多支付渠道的多支付場景這個業務形態,其次應用上設計模式后代碼緯度都會讓整個代碼設計的理解難度會大幅增加。

針對咱們今天的流程場景,我畫了一個整個代碼設計的UML類圖:

圖片圖片

首先我們定義接口 OrderPayTemplateContract,訂單支付的模版--對訂單支付執行過程的抽象, 模版方法中決定流程步驟的執行順序。

type OrderPayTemplateContract interface {
 CreateOrderPay() (interface{}, error) // 模版方法
 OrderPayHandlerContract
}

OrderPayTemplateContract 中的CreateOrderPay 方法為模版方法,即在它的內部決定各個步驟的執行順序,我們把流程步驟都放在了 OrderPayHandlerContract 接口中。

// OrderPayHandlerContract 訂單支付的處理器接口--對訂單支付各個主要步驟的抽象
type OrderPayHandlerContract interface {
// CheckRepetition 防重校驗
 CheckRepetition() error
// ValidateOrder 檢驗Order參數是否符合預期
 ValidateOrder() error
// LoadPayAndUserConfig 加載支付配置和支付平臺需要的一些用戶信息--比如微信的openID
 LoadPayAndUserConfig() error
// LoadOrderPayStrategy 加載訂單支付策略
 LoadOrderPayStrategy() error
// HandleOrderPay 發起支付
 HandleOrderPay() (interface{}, error)
}

步驟中有一個加載訂單支付策略,我們定義了 OrderPayStrategyContract 支付策略接口,由其實現類去真正發起對支付平臺的調用。

type OrderPayStrategyContract interface {
 // CreatePay 實現支付策略中有關創建支付的邏輯
 // 可以根據策略本身決定去怎么實現 創建訂單|設置簽約碼|......
 CreatePay(ctx context.Context, order *do.Order, payConfig *OrderPayConfig) (interface{}, error)
}


責任編輯:武曉燕 來源: 網管叨bi叨
相關推薦

2021-06-16 08:56:06

模版方法模式設計模式行為型設計模式

2022-05-13 07:26:28

策略模式設計模式

2013-11-26 16:09:34

Android設計模式

2023-04-10 09:20:13

設計模式訪客模式

2023-05-04 08:47:31

命令模式抽象接口

2022-02-11 10:22:48

模版模式語言

2015-09-08 13:39:10

JavaScript設計模式

2021-06-09 08:53:34

設計模式策略模式工廠模式

2023-05-15 08:51:46

解釋器模式定義

2021-08-16 17:15:19

設計模式Android適配器模式

2023-10-30 18:59:38

REST API開發

2022-09-21 08:47:05

項目多線程對象

2012-08-30 09:07:33

設計模式

2024-06-04 13:11:52

Python行為設計模式開發

2010-06-29 13:06:39

云計算

2024-01-29 12:22:07

設計模式策略模式

2014-12-29 10:39:16

JS

2017-07-07 10:55:14

數據庫MongoDB設計模式

2025-06-30 00:32:43

策略模式算法MyBatis

2024-04-07 08:15:13

Go語言工具
點贊
收藏

51CTO技術棧公眾號

色欲久久久天天天综合网| 亚洲一级片av| 欧美a免费在线| 国产**成人网毛片九色| 91av在线不卡| 九一在线免费观看| 玖玖玖视频精品| 狠狠综合久久av一区二区小说| 亚洲欧洲在线一区| 免费av一级片| 久久精品噜噜噜成人av农村| 国内揄拍国内精品| 五月天婷婷丁香网| 日韩影视高清在线观看| 在线成人小视频| 日韩a在线播放| 亚洲精品一线| 国产精品久久久久久久久快鸭| 国产66精品久久久久999小说| 啪啪小视频网站| 99亚洲视频| 欧美激情乱人伦| 在线观看日本黄色| 亚洲最好看的视频| 精品欧美一区二区三区精品久久| 国产九九在线视频| 美女一区网站| 精品成人国产在线观看男人呻吟| 看一级黄色录像| 韩国三级av在线免费观看| 高清av一区二区| 成人激情视频在线播放| 精品人妻一区二区三区潮喷在线 | 精品一区二区成人免费视频| 久热av在线| 91网站最新网址| 国产伦精品一区二区三毛| 国产乱色精品成人免费视频| 免费不卡在线观看| 国产精品69av| 国产污视频网站| 香蕉亚洲视频| 97久久精品人搡人人玩| 久一区二区三区| 欧美精品三区| 欧美激情在线播放| 麻豆一区产品精品蜜桃的特点| 91亚洲自偷观看高清| 中文欧美日本在线资源| 公肉吊粗大爽色翁浪妇视频| 你懂的视频欧美| 亚洲欧美一区二区三区在线| 性色av蜜臀av色欲av| 国产一区二区在线视频你懂的| 精品日韩一区二区三区| 久久久久久婷婷| 7777精品| 亚洲国产成人精品女人久久久| av电影在线播放| 国产精品欧美大片| 亚洲精品videossex少妇| 日本一卡二卡在线| 亚洲+小说+欧美+激情+另类| 亚洲男子天堂网| 99在线视频免费| 欧美aaaaaaaaaaaa| 美女国内精品自产拍在线播放| 黄色在线观看免费| 在线视频日韩| 国产精品成av人在线视午夜片 | 精品一区二区久久久久久久网站| 五月婷婷丁香网| 久久精品一区二区三区不卡| 亚洲va久久久噜噜噜久久狠狠 | 亚洲视频在线一区二区| 欧美大黑帍在线播放| 色戒汤唯在线观看| 欧美性videosxxxxx| 亚洲自拍第三页| silk一区二区三区精品视频| 亚洲欧美成人精品| 少妇高潮在线观看| 亚洲无吗在线| 国产精品高清在线| 午夜精品无码一区二区三区| 91麻豆文化传媒在线观看| 亚洲国产日韩美| 男男gaygays亚洲| 日本韩国欧美一区二区三区| www,av在线| 美女视频亚洲色图| 神马国产精品影院av| 精品无码久久久久| 日韩在线a电影| 不卡视频一区二区| lutube成人福利在线观看| 亚洲美女屁股眼交| 青青青在线播放| 激情五月综合婷婷| 亚洲欧美三级伦理| 国产一级片免费| 免费看日韩精品| 国产一区国产精品| 国产日产一区二区| 欧美性色xo影院| www.四虎精品| 天天综合国产| 国产成人精品优优av| 亚洲精品无遮挡| 国产精品久久久久久久久久免费看 | 欧美视频综合| 一区二区三区在线观看视频| 亚洲精品乱码久久久久久自慰| 欧美区一区二区| 国产一区二区三区在线观看视频| 黄色一级视频免费观看| 久久99精品网久久| 欧美一区二区三区电影在线观看| 日本精品600av| 在线不卡免费av| 摸摸摸bbb毛毛毛片| 在线一区视频| 国产精品加勒比| 日韩av激情| 91精品国产免费| 日韩在线视频免费看| 三级亚洲高清视频| 精品国产一区二区三区免费| 色帝国亚洲欧美在线| 欧美精品久久久久久久多人混战| 国产一二三四区在线| 久热综合在线亚洲精品| 精品欧美一区二区三区久久久| a免费在线观看| 在线不卡的av| 卡通动漫亚洲综合| 国产在线不卡一区| 国产高清免费在线| 伊人久久综合网另类网站| 这里只有精品在线播放| 天天干天天操天天操| 国产欧美日韩不卡免费| 成年人免费大片| 精品九九在线| 国产精品丝袜久久久久久高清 | 久久久久国产精品一区| 亚洲第一天堂网| 亚洲综合免费观看高清完整版 | caoporn超碰97| 精品国产99| 国产精品久久久久久久久久三级 | 国产日韩欧美一区二区三区综合| 99精品人妻少妇一区二区 | 国产91精品一区二区| 在线观看三级网站| 亚洲国产精品免费视频| 欧美高清视频在线观看| 亚洲精品国产手机| 婷婷丁香激情综合| 日本aaa视频| 日韩av午夜在线观看| 亚洲欧美日产图| av在线国产精品| 欧美国产日韩二区| 天天色棕合合合合合合合| 色综合久久综合| 1024手机在线观看你懂的| 蜜桃精品视频在线| 成人午夜视频免费观看| 久久影院资源站| 国产精品福利在线观看| 成人在线观看免费网站| 亚洲国产精品人人爽夜夜爽| 亚洲色成人www永久网站| 日本一区二区三区四区| 人妻体体内射精一区二区| 亚洲精品麻豆| 婷婷五月色综合| 91久久精品无嫩草影院| 2019国产精品自在线拍国产不卡| 国产福利小视频在线| 欧美一级一区二区| www欧美在线| 国产精品黄色在线观看| 99久久久无码国产精品性波多 | 在线免费播放av| 免费在线观看精品| 国产传媒久久久| 欧洲杯足球赛直播| 高清国产一区| 一区在线影院| 欧美激情久久久久久| 成人精品一区二区三区校园激情| 日韩欧美色综合网站| 99久久精品国产亚洲| 亚洲欧美一区二区久久| 亚洲av网址在线| 国产精品中文欧美| 国产精品69页| 在线成人h网| 一区二区在线不卡| 香蕉久久精品| 成人18视频| 亚洲色图综合| 国产精品v片在线观看不卡| 国产盗摄在线视频网站| 日韩在线欧美在线| 全色精品综合影院| 精品国产污网站| av一区二区三| 欧美三级三级三级| 国产成人免费看| 夜夜操天天操亚洲| 久久久久亚洲av片无码| 国产欧美一区二区三区在线老狼| 国产chinese中国hdxxxx| 精品一区二区免费在线观看| 国产又大又硬又粗| 91久久综合| 国产精品一二三在线观看| 精品国产午夜| 蜜桃传媒视频第一区入口在线看| 欧美区一区二区| 成人有码在线播放| 精品女同一区二区三区在线观看| 8x海外华人永久免费日韩内陆视频| 中中文字幕av在线| 久久电影一区二区| 国产在线高潮| 久久综合久久八八| 日韩精品黄色| 久久精品国产成人精品| h视频网站在线观看| 亚洲日韩中文字幕在线播放| 亚洲色偷精品一区二区三区| 日韩一卡二卡三卡四卡| 国产又黄又粗又长| 欧美福利视频导航| 亚洲一级特黄毛片| 欧美高清精品3d| 92久久精品一区二区| 欧美精品xxxxbbbb| 国产免费久久久| 在线综合+亚洲+欧美中文字幕| 伊人久久成人网| 在线成人午夜影院| 99久久一区二区| 日韩欧美久久一区| 好吊色一区二区三区| 337p日本欧洲亚洲大胆精品| 免费看黄网站在线观看| 亚洲第一精品电影| 头脑特工队2免费完整版在线观看| 亚洲激情视频网| 牛牛澡牛牛爽一区二区| 国产一区二区三区精品久久久 | www三级免费| 欧美xxxxxxxx| 五月婷婷在线播放| 亚洲三级免费看| 日韩大片在线永久免费观看网站| xxxxx91麻豆| 久久香蕉av| 全球成人中文在线| 日韩久久99| 亚洲影院色无极综合| 欧美电影完整版在线观看| 欧美二级三级| 久久人人99| av一区二区三区免费观看| 国产精品久久777777毛茸茸| 九色91popny| 国产一区二区三区在线观看免费视频| 丰满少妇中文字幕| www久久久久| 制服丨自拍丨欧美丨动漫丨| 亚洲综合一区在线| 一二三区免费视频| 欧美一级黄色片| 四虎精品在永久在线观看| 中文字幕国产精品久久| 色呦呦在线视频| 国产精品黄视频| 视频免费一区二区| 欧美午夜免费| 欧美va天堂在线| 精品一卡二卡三卡| 国产精品中文欧美| 亚洲黄色免费视频| 亚洲一区二区三区四区在线免费观看 | 免费福利在线视频| 欧美成人精品一区二区三区| 亚洲国产福利| 97久久精品午夜一区二区| 国产探花一区| 国产成人永久免费视频| 日本女人一区二区三区| 日韩综合第一页| 中文字幕一区二区三区在线观看 | 免费久久精品视频| 在线观看免费视频黄| 亚洲欧洲日韩一区二区三区| 69成人免费视频| 日韩精品综合一本久道在线视频| 国产在线一在线二| 97久久精品人搡人人玩| 日韩精品一区二区三区中文| 欧洲国产精品| 99国产成+人+综合+亚洲欧美| 在线免费黄色小视频| 国产精品欧美一区喷水| 天天干天天干天天干天天| 日韩免费电影一区| 日本免费视频在线观看| 国产激情综合五月久久| 久久悠悠精品综合网| 日b视频免费观看| 激情av综合网| 国产精品18在线| 在线观看一区二区精品视频| 日本xxxxwww| 欧美激情综合亚洲一二区| 国产日韩在线观看视频| 亚洲乱码一区二区三区| 久色成人在线| 日韩一级av毛片| 色婷婷综合久久久| 青青免费在线视频| 97国产在线视频| 丁香五月缴情综合网| 成人短视频在线观看免费| 国产毛片精品国产一区二区三区| 久久久精品少妇| 欧美久久久一区| 美女羞羞视频在线观看| 国产精品视频在线播放| 欧美偷拍自拍| 在线观看免费黄网站| 国产精品乱码一区二区三区软件| 波多野结衣人妻| 中文字幕欧美视频在线| 黄色成人小视频| 永久免费精品视频网站| 精品一区二区久久| 婷婷久久综合网| 欧美一卡2卡3卡4卡| 激情网站在线| 国产精品午夜av在线| 夜久久久久久| 玖草视频在线观看| 色婷婷综合久久久久中文一区二区| 蝌蚪视频在线播放| 国产精品精品国产| 日韩在线不卡| 在线观看视频在线观看| 亚洲午夜久久久久久久久电影网| 凸凹人妻人人澡人人添| 欧美亚洲视频在线看网址| 欧美日中文字幕| 欧美性受xxxxxx黑人xyx性爽| 亚洲视频香蕉人妖| 欧美自拍第一页| 国产福利精品视频| 999久久久91| 中文在线观看免费视频| 一本到三区不卡视频| 无遮挡动作视频在线观看免费入口| 成人羞羞国产免费| 亚洲人www| 国产视频不卡在线| 日韩精品在线一区二区| 忘忧草在线日韩www影院| 亚洲精蜜桃久在线| 国产成人综合在线播放| 日本天堂在线视频| 一区二区日韩精品| 99久久久成人国产精品| 欧美国产亚洲一区| 国产精品久久久久久久久图文区| 国产sm主人调教女m视频| 97色在线观看免费视频| 不卡在线一区| 中文字幕在线国产| 欧美在线观看一区| 污片在线免费观看| 日韩亚洲不卡在线| 国产精一区二区三区| 少妇太紧太爽又黄又硬又爽| 精品国产欧美一区二区五十路| 99re8这里有精品热视频8在线| 久久久久久久久久久久久国产精品| 国产精品麻豆一区二区| 婷婷av一区二区三区| 91精品久久久久久久久久久| 99精品99| 免费在线黄色网| 亚洲视频自拍偷拍| 欧美挤奶吃奶水xxxxx| 一级做a免费视频| 一本大道久久a久久精二百|