精品欧美一区二区三区在线观看 _久久久久国色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技術棧公眾號

精品欧美日韩| 欧美精品免费在线观看| 一区二区xxx| av大片在线观看| 国产美女精品在线| 久久久久久这里只有精品| 国产麻豆天美果冻无码视频 | 色综合久久综合中文综合网| 相泽南亚洲一区二区在线播放| a毛片在线免费观看| 一本久久知道综合久久| 色偷偷偷亚洲综合网另类| 秋霞午夜鲁丝一区二区| 桃色一区二区| 亚洲专区一二三| 日韩美女一区| 欧美一区二区三区成人片在线| 视频一区二区三区入口| 久久99国产综合精品女同| 中文字幕丰满乱子伦无码专区| 91成人小视频| 色视频欧美一区二区三区| 视色,视色影院,视色影库,视色网| 亚洲人成色777777精品音频| 国产综合色视频| 日本三级韩国三级久久| 久久久久久久久久久网| 91麻豆精品国产91久久久平台| 亚洲国产精品人人爽夜夜爽| 色91精品久久久久久久久| 亚洲欧美电影| 亚洲国产精品久久艾草纯爱 | 亚洲永久无码7777kkk| 成人在线啊v| 欧美艳星brazzers| 国产精品沙发午睡系列| 久久免费电影| 亚洲免费视频二区| 韩日成人在线| 色青青草原桃花久久综合| 国产女人18水真多毛片18精品| 欧美jizzhd欧美| av成人免费在线观看| 91久久精品国产| 91久久精品一区二区二区| 国产mv久久久| 久久亚洲精品大全| 九九热99视频| 色婷婷av在线| 亚洲视频狠狠干| 亚洲精品一区二区三区蜜桃久| 亚洲精品无码专区| 久久激情综合网| 精品日产卡一卡二卡麻豆| 亚洲free性xxxx护士hd| 香蕉污视频在线观看| 一本色道久久综合亚洲精品不卡| 日韩极品在线观看| 日韩成人在线电影网| 动漫av在线免费观看| www 久久久| 91精品一区二区三区久久久久久| 中文字幕在线综合| 成人在线视频观看| 热久久久久久久久| 亚洲天堂1区| 在线视频一区二区免费| av无码精品一区二区三区| 乡村艳史在线观看| 高跟丝袜欧美一区| 国产成人精品视频免费看| 美女高潮在线观看| 欧美在线免费播放| 色乱码一区二区三区在线| 日日夜夜一区| 日韩欧美国产一区二区在线播放 | 久久综合网络一区二区| 国产精品99久久久久久www| 日本三级一区二区三区| 精品无人码麻豆乱码1区2区| 91精品视频免费观看| 国产综合在线播放| 久久综合九色欧美综合狠狠 | 欧美日韩中字| 久久躁狠狠躁夜夜爽| 久久高清免费视频| 青娱乐精品在线视频| 亚洲wwwav| 亚洲最新av网站| 成人丝袜视频网| 欧美久久电影| 美女av在线播放| 精品久久久国产| xxx国产在线观看| 老司机精品视频在线播放| 亚洲午夜小视频| 亚洲熟女www一区二区三区| 99精品国产福利在线观看免费| 国产精品视频网址| 免费看日韩av| 国产精品久99| 国内自拍在线观看| 麻豆精品国产| 亚洲天堂网在线观看| 欧美日韩免费做爰视频| 久久久人人人| 高清免费日韩| 秋霞午夜理伦电影在线观看| 欧美日韩一区二区免费视频| 182午夜在线观看| 亚洲精品亚洲人成在线观看| 精品中文字幕在线观看| 国产在线观看第一页| 不卡一区在线观看| 看一级黄色录像| 成人h在线观看| 亚洲黄色片网站| 在线免费观看亚洲视频| 日韩av二区在线播放| 精品久久久久久中文字幕动漫| 日本在线免费网| 色偷偷成人一区二区三区91| 国产ts在线观看| 偷偷www综合久久久久久久| 日本精品视频在线播放| 蜜桃av中文字幕| 亚洲欧美日韩国产中文在线| 手机看片福利日韩| 亚洲女娇小黑人粗硬| 性欧美在线看片a免费观看 | 精品小视频在线| 久久人人爽人人爽人人| 国产乱码精品一区二区三区av| 涩涩涩999| 欧美日韩视频网站| 亚洲美女视频网| 成人免费视频毛片| 不卡一区二区中文字幕| 2022中文字幕| 久久av网站| 久久最新资源网| 国产强被迫伦姧在线观看无码| 国产精品成人一区二区艾草 | 777久久精品一区二区三区无码| 日韩av一级| 中文字幕日韩精品在线观看| 精品黑人一区二区三区| 久久色在线视频| 凹凸国产熟女精品视频| 欧美大胆视频| 欧美在线日韩在线| 日韩二区三区| 欧美性猛交xxxx乱大交极品| 人妻体内射精一区二区| 免费日韩av片| 日韩伦理一区二区三区av在线| 三上悠亚国产精品一区二区三区| 亚洲女人天堂色在线7777| 男人天堂2024| 国产丝袜在线精品| 少妇一级淫免费放| 91九色精品| 成人xxxxx色| 国产理论电影在线| 日韩精品免费一线在线观看| 欧美日韩在线视频播放| 国产精品国产a| 色欲无码人妻久久精品| 国产精品黄色| 久久一区免费| 99欧美精品| 久久99亚洲热视| 人妻偷人精品一区二区三区| 色哟哟日韩精品| 国产在视频线精品视频| 国产高清在线观看免费不卡| 免费拍拍拍网站| 久久男人av| 国产精品黄页免费高清在线观看| 欧洲美女少妇精品| 精品国产乱码久久久久久图片| 日韩欧美a级片| 亚洲国产精品激情在线观看 | 91污在线观看| 国产日韩欧美久久| 黑丝一区二区三区| 欧美精品在线一区| 久久久久久亚洲精品美女| 97人人做人人爱| 9i精品一二三区| 精品欧美一区二区三区精品久久| 久久免费激情视频| 1000部国产精品成人观看| 国产xxxx视频| 久草热8精品视频在线观看| 日韩欧美猛交xxxxx无码| 国产成人黄色| 999久久久| 欧美va在线观看| 欧美—级高清免费播放| 成年人在线看| 欧美精品一区二区三区久久久| 成年人晚上看的视频| 亚洲一区免费视频| 中国1级黄色片| 91啪亚洲精品| 中文字幕人妻熟女在线| 蜜臀久久99精品久久久画质超高清| 丁香色欲久久久久久综合网| 成人网18免费网站| 精品无人乱码一区二区三区的优势| 日韩城人网站| 国产精品电影在线观看| f2c人成在线观看免费视频| 日韩视频免费中文字幕| 国模吧精品人体gogo| 亚洲电影免费观看高清| 国产毛片毛片毛片毛片| 欧美特级限制片免费在线观看| 日韩手机在线观看| 亚洲在线观看免费| 亚洲xxxx3d动漫| 国产精品福利av| 国产精成人品免费观看| 久久综合国产精品| 日本五十肥熟交尾| 国产成人h网站| 夜夜爽久久精品91| 久久99精品一区二区三区| 色婷婷综合久久久久中文字幕| 亚洲精品一二| 又大又硬又爽免费视频| 国内精品久久久久久久97牛牛 | 国产精品入口免费| 免费观看性欧美大片无片| 国产精品一区二区三区成人| 日韩三区在线| 国产精品电影观看| 成人免费网站www网站高清| 2020国产精品视频| 中文字幕成在线观看| 久久久久亚洲精品国产| 麻豆蜜桃在线| 欧美极度另类性三渗透| 国产探花在线观看| 久久久久女教师免费一区| 日本精品600av| 欧美精品videos另类日本| 久久香蕉av| 97在线视频免费播放| 欧美日韩国产观看视频| 欧美亚洲另类激情另类| 中文字幕不卡三区视频| 日本午夜在线亚洲.国产| www.com.cn成人| 国产精品麻豆va在线播放| 国产私拍福利精品视频二区| 国产精品美女久久| 日韩色性视频| 99re国产视频| 日韩精品免费一区二区夜夜嗨| 免费看国产精品一二区视频| 国内亚洲精品| 中文字幕久久一区| 欧美日韩综合| 高清在线观看免费| 日本午夜一区二区| 波多野结衣免费观看| 成人在线视频首页| 国产精品无码网站| 国产精品伦一区二区三级视频| 亚洲综合网在线| 亚洲成人高清在线| 中文字幕一级片| 日韩一二三区不卡| 青青草免费在线| 日韩在线视频免费观看高清中文| 黄色网页在线播放| 国产69精品久久久久久| 男人亚洲天堂| 国产精品免费观看高清| 精品国产一区二区三区久久久樱花 | 香蕉久久一区二区不卡无毒影院 | 久99久精品视频免费观看| 国产大学生av| 国产欧美视频一区二区三区| 国产探花在线免费观看| 狠狠综合久久av一区二区小说| 中文字幕欧美人妻精品一区蜜臀| 欧美一级一区二区| 久青草国产在线| 久久成人精品一区二区三区| sis001欧美| av色综合网| 日韩一区二区中文| 日本a视频在线观看| 免费看欧美美女黄的网站| 99riav国产精品视频| 国产欧美日韩不卡| 国产精品第二十页| 69堂国产成人免费视频| 国产午夜精品一区理论片| 欧美精品情趣视频| jvid一区二区三区| 久久国产精品高清| 国产精品theporn| 三上悠亚av一区二区三区| 91色婷婷久久久久合中文| 顶臀精品视频www| 在线观看亚洲a| 亚洲三级黄色片| 九九九久久久久久| 国产精品亲子伦av一区二区三区| 国语精品中文字幕| 自拍视频亚洲| www.久久91| 久久精品一区蜜桃臀影院| 香蕉视频一区二区| 欧美电影精品一区二区| 黄色免费网站在线观看| 国产精品美女午夜av| 欧美成人午夜77777| 东北少妇不带套对白| 国产乱码精品一品二品| 欧美人与性囗牲恔配| 欧美性猛交xxxx偷拍洗澡| 日本黄色大片视频| 欧美肥臀大乳一区二区免费视频| 久久91视频| 亚洲精品一卡二卡三卡四卡| 久久免费国产| 日本xxxxxxxxx18| 欧美视频免费在线| 亚洲欧洲国产综合| 91成人精品网站| 日本一区福利在线| 波多野结衣之无限发射| 成人av网站免费观看| 久久国产精品二区| 亚洲第一偷拍网| 不卡av免费观看| 国产精品手机视频| 国产亚洲激情| 免费成人深夜夜行p站| 欧美性生交xxxxxdddd| 嫩草精品影院| 国产99久久精品一区二区 夜夜躁日日躁| 九九热hot精品视频在线播放| 国产人妻人伦精品| 国产.欧美.日韩| 欧美福利视频一区二区| 亚洲精品97久久| 卡通欧美亚洲| 天堂资源在线亚洲资源| 免费观看成人鲁鲁鲁鲁鲁视频| 性少妇xx生活| 91精品在线一区二区| 黄污视频在线观看| 精品不卡一区二区三区| 久久这里有精品15一区二区三区| 中文字幕被公侵犯的漂亮人妻| 欧美在线视频日韩| 福利视频在线| 好看的日韩精品视频在线| 久久精品官网| 69夜色精品国产69乱| 日韩一区二区三| 蜜桃av在线| 亚洲 国产 欧美一区| 国产精品主播直播| 日韩精品一区二区不卡| 亚洲人成五月天| 亚洲影视资源| 欧美一级欧美一级| 国产性色一区二区| www久久久com| 欧美一级淫片videoshd| 色综合久久网| fc2成人免费视频| 欧美亚洲一区二区在线观看| av在线看片| 久久综合久久综合这里只有精品| 麻豆一区二区三区| 国产真实夫妇交换视频| 亚洲人成电影网站色…| 国产一区二区三区精品在线观看 | 亚洲成人精品久久| 成人不卡视频| www插插插无码视频网站| 亚洲国产精品高清| 欧美一级视频免费| 国产精品一区二区三| 日韩一级在线| 日本精品在线免费观看| 精品亚洲一区二区| 亚洲五码在线| 91福利国产成人精品播放| 精品久久久久久久久久久久久久| 日日夜夜精品一区| 欧美第一黄网|