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

SpringBoot如何優(yōu)雅切換支付渠道

開發(fā) 前端
策略模式的核心在于將不同的算法或行為封裝成獨立的策略類,使得它們可以相互替換,從而提高系統(tǒng)的靈活性和可維護性。

前言

項目開發(fā)中,我們經(jīng)常需要根據(jù)不同條件動態(tài)選擇服務實現(xiàn),例如根據(jù)支付類型選擇不同的支付處理器,或根據(jù)數(shù)據(jù)源類型選擇不同的數(shù)據(jù)訪問策略。

實現(xiàn)

基于策略模式的實現(xiàn)方案

策略模式的核心在于將不同的算法或行為封裝成獨立的策略類,使得它們可以相互替換,從而提高系統(tǒng)的靈活性和可維護性。

定義支付處理器接口
// 支付處理器接口
public interface PaymentProcessor {
    String processPayment(double amount);
}
實現(xiàn)具體支付處理器策略類
// 支付寶支付處理器
@Component
public class AlipayProcessor implements PaymentProcessor {
    @Override
    public String processPayment(double amount) {
        return"處理支付寶支付: " + amount;
    }
}

// 微信支付處理器
@Component
public class WechatPayProcessor implements PaymentProcessor {
    @Override
    public String processPayment(double amount) {
        return"處理微信支付: " + amount;
    }
}

// 銀行卡支付處理器
@Component
public class BankCardProcessor implements PaymentProcessor {
    @Override
    public String processPayment(double amount) {
        return"處理銀行卡支付: " + amount;
    }
}
定義支付策略上下文類
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import java.util.Map;

@Component
public class PaymentContext {
    private final Map<String, PaymentProcessor> paymentProcessorMap;

    @Autowired
    public PaymentContext(Map<String, PaymentProcessor> paymentProcessorMap) {
        this.paymentProcessorMap = paymentProcessorMap;
    }

    public String processPayment(String paymentType, double amount) {
        PaymentProcessor processor = paymentProcessorMap.get(paymentType);
        if (processor != null) {
            return processor.processPayment(amount);
        }
        return"未找到對應的支付處理器: " + paymentType;
    }
}

PaymentContext類作為策略模式中的上下文,通過構造函數(shù)注入包含所有支付處理器的Map,并根據(jù)支付類型選擇相應的處理器執(zhí)行支付處理,起到管理和調(diào)度策略的作用。

定義支付服務類和控制器類
// 支付服務類
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

@Service
public class PaymentService {
    private final PaymentContext paymentContext;

    @Autowired
    public PaymentService(PaymentContext paymentContext) {
        this.paymentContext = paymentContext;
    }

    public String handlePayment(String paymentType, double amount) {
        return paymentContext.processPayment(paymentType, amount);
    }
}

// 支付控制器類
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;

@RestController
@RequestMapping("/payment")
public class PaymentController {
    private final PaymentService paymentService;

    @Autowired
    public PaymentController(PaymentService paymentService) {
        this.paymentService = paymentService;
    }

    @PostMapping("/process")
    public String processPayment(@RequestParam String paymentType, @RequestParam double amount) {
        return paymentService.handlePayment(paymentType, amount);
    }
}

基于 Map 注入的實現(xiàn)方案

基于Map注入的方式借助Spring的依賴注入機制,將接口的所有實現(xiàn)類以鍵值對形式注入到Map中,實現(xiàn)根據(jù)鍵值快速獲取對應實現(xiàn)類實例。

定義支付處理器接口和實現(xiàn)類

與策略模式中的定義相同,保持PaymentProcessor接口和支付寶、微信、銀行卡等支付處理器實現(xiàn)類,通過@Component注解將實現(xiàn)類注冊到Spring容器中。

改造支付服務類
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.Map;

@Service
public class PaymentService {
    private final Map<String, PaymentProcessor> paymentProcessorMap;

    @Autowired
    public PaymentService(Map<String, PaymentProcessor> paymentProcessorMap) {
        this.paymentProcessorMap = paymentProcessorMap;
    }

    public void processPayment(String paymentType, double amount) {
        PaymentProcessor processor = paymentProcessorMap.get(paymentType);
        if (processor != null) {
            processor.processPayment(amount);
        } else {
            System.out.println("未找到對應的支付處理器: " + paymentType);
        }
    }
}

?支付服務類通過構造函數(shù)注入Map<String, PaymentProcessor>,在處理支付請求時,直接根據(jù)支付類型從Map中獲取對應的處理器實例并執(zhí)行支付操作。

使用支付服務

同樣定義控制器類接收支付請求,調(diào)用PaymentService的方法完成支付處理,與策略模式中的控制器實現(xiàn)類似。

差異對比

  • 管理方式

     a.策略模式:通過上下文類明確管理策略對象,各個策略類職責清晰,系統(tǒng)結構更有條理,便于維護和擴展新策略。

     b.基于 Map:依賴 Spring 容器注入Map,元素管理較為松散,缺乏專門的管理角色,在復雜場景下可能導致代碼邏輯不夠清晰。

  • 查找邏輯
  • 策略模式:上下文類可根據(jù)多種復雜條件選擇策略,如用戶信息、業(yè)務規(guī)則等,適應復雜業(yè)務場景。
  • 基于 Map:主要依賴Map的get方法,根據(jù)單一鍵值查找,適合簡單的標識符匹配場景,復雜查找邏輯實現(xiàn)較困難。
  • 適用場景
  • 策略模式:適用于算法或行為多變、需要靈活切換,以及業(yè)務規(guī)則復雜、需多種條件組合選擇實現(xiàn)的場景。
  • 基于 Map:適合服務或?qū)崿F(xiàn)類數(shù)量穩(wěn)定、查找邏輯簡單,主要依據(jù)單一標識符選擇的場景。
責任編輯:武曉燕 來源: 一安未來
相關推薦

2023-06-28 08:25:14

事務SQL語句

2025-03-17 00:00:00

2024-03-18 14:06:00

停機Spring服務器

2024-04-08 08:09:10

埋點收集數(shù)據(jù)StartRocks數(shù)據(jù)存儲

2024-10-14 14:28:19

支付系統(tǒng)設計

2017-02-28 16:23:28

支付清結算渠道側(cè)

2023-10-27 08:20:12

springboot微服務

2025-11-18 07:52:13

2022-08-03 07:07:10

Spring數(shù)據(jù)封裝框架

2023-12-20 13:50:00

SpringBootJSON序列化

2023-03-23 22:46:38

Spring限流機制

2024-07-22 19:31:34

2024-12-26 07:47:05

Spring管理配置

2021-11-10 10:03:18

SpringBootJava代碼

2023-01-30 07:41:43

2019-01-24 16:11:19

前端全局異常數(shù)據(jù)校驗

2024-05-29 08:12:55

接口參數(shù)格式

2025-03-10 00:00:11

Spring框架數(shù)據(jù)

2025-09-02 09:32:33

Spring工具項目

2022-12-26 00:38:00

外聯(lián)網(wǎng)關平臺
點贊
收藏

51CTO技術棧公眾號

亚洲综合另类小说| 日av在线不卡| 日韩麻豆第一页| 国产嫩草在线观看| av片在线观看永久免费| 成人av资源站| 国产精品久久综合av爱欲tv| 国产乱子轮xxx农村| 亚洲一区二区三区日本久久九| 精品成人乱色一区二区| 亚洲午夜精品久久久中文影院av | 欧美专区在线| 综合久久久久久| 55夜色66夜色国产精品视频| 中文字幕第24页| 国产精品一区二区精品视频观看| 五月激情综合婷婷| 成年人三级视频| 国产精品成人久久久| 综合激情视频| 一区二区三区www| 一边摸一边做爽的视频17国产 | 在线免费一区三区| 人妻激情另类乱人伦人妻| 中文字幕永久在线视频| 精品影片在线观看的网站| 91精品国产黑色紧身裤美女| 日韩中文字幕免费在线| 99thz桃花论族在线播放| 国产精品久久久久四虎| 欧美精品七区| 韩国av免费在线| 精品亚洲porn| 国产精品久久久久久久午夜| 97久久久久久久| 黑丝一区二区| 欧美成人四级hd版| 九九热视频在线免费观看| 国产一区日韩| 亚洲精品suv精品一区二区| ass极品水嫩小美女ass| 天堂久久一区| 欧美日韩不卡在线| 亚洲综合色在线观看| 午夜视频在线看| 91视频国产观看| 国产自产精品| 亚洲免费在线视频观看| 亚洲国产mv| 欧美激情小视频| 一区二区视频免费看| 97精品国产| 日韩少妇与小伙激情| 91社区视频在线观看| 久蕉依人在线视频| 精品乱码一区二区三区| 精品无码国产污污污免费网站| 欧美一区 二区| 亚洲高清免费观看高清完整版| 一区二区三区人妻| 日韩精品成人| 精品国产网站在线观看| 国产伦精品一区二区免费| 欧美wwwsss9999| 国产视频精品va久久久久久| 精品人妻一区二区三区视频| 国产在线观看91一区二区三区| 亚洲人成自拍网站| 青青草华人在线视频| 欧美mv日韩| 欧美美女操人视频| 好吊操这里只有精品| 老鸭窝亚洲一区二区三区| 国产成人中文字幕| 天天干天天舔天天操| 欧美一区2区| 色老头一区二区三区| 国产又粗又硬又长又爽| 国内综合精品午夜久久资源| 91干在线观看| 18岁成人毛片| 亚洲黄色大片| 国产精品r级在线| 一级特黄aaa大片| 国产91精品露脸国语对白| 国外成人免费视频| 国产在线视频网站| 亚洲视频资源在线| 男人添女人下部高潮视频在观看| 欧美成人黑人| 欧美一区日韩一区| a视频免费观看| 精品国产一区二区三区四区| 久久国产色av| 日本一区二区三区精品| 青青草国产成人99久久| 国产精品一区二区三区观看| 国产私拍精品| 亚洲一区二区不卡免费| 在线观看日韩羞羞视频| 人人超在线公开视频| 色婷婷av一区二区三区gif| av中文字幕网址| 欧美在线导航| 久久夜色精品国产欧美乱| 国产精品视频久久久久久久| 国产一区欧美日韩| 欧洲av一区| 乱插在线www| 精品1区2区3区| youjizz.com国产| 国产精品久久天天影视| 欧美一级片在线播放| 国产成人精品白浆久久69| 久久久久9999亚洲精品| 免费人成自慰网站| 亚洲爽爆av| 欧美卡1卡2卡| 天天躁日日躁aaaxxⅹ| 国产精品v日韩精品v欧美精品网站| 国产精品久久久精品| 亚洲欧美激情在线观看| 国产精品国产成人国产三级| 91黄色小网站| 成人精品三级| 色哟哟国产精品| 国产精品一区二区无码对白| 亚洲美女视频| 国产免费一区二区三区在线能观看 | 久久成年人视频| 亚洲成人av网址| 91视视频在线直接观看在线看网页在线看 | 三日本三级少妇三级99| 先锋影音网一区二区| 亚洲男人的天堂在线| 国产无码精品在线播放| 国产成人综合精品三级| 三年中国中文在线观看免费播放| av成人在线观看| 6080日韩午夜伦伦午夜伦| 国产免费无遮挡吸奶头视频| 久久久999| 欧美极品色图| 欧美片第一页| 亚洲精选在线观看| 丰满少妇xoxoxo视频| www国产精品av| 狠狠爱免费视频| 夜夜春成人影院| 日本欧美一级片| 国产在线一二三| 在线免费精品视频| 三区四区在线观看| 美国av一区二区| 在线观看成人av电影| 精品国产三区在线| 欧美另类暴力丝袜| 国产91绿帽单男绿奴| 亚洲综合一区二区精品导航| 日韩综合第一页| 噜噜噜久久亚洲精品国产品小说| 欧美精品一区二区三区在线看午夜| 97蜜桃久久| 亚洲精品自拍视频| 亚洲精品毛片一区二区三区| 国产精品欧美一区二区三区| 亚洲最大成人在线观看| 久久久久久久久丰满| 97se国产在线视频| 黄色在线观看www| 国产一区二区三区视频在线观看| 中文字幕 人妻熟女| 亚洲欧美视频一区| 亚洲精品国产成人av在线| 久久成人一区| 在线看视频不卡| 秋霞一区二区| 国产91精品久久久久久久| 国产美女视频一区二区三区| 欧美精品一卡两卡| 精品无码久久久久久久| 久久婷婷色综合| 激情成人在线观看| 亚洲美女色禁图| 午夜精品一区二区三区四区 | 俺来俺也去www色在线观看| 亚洲国产中文字幕久久网| 波多野结衣视频免费观看| 亚洲人亚洲人成电影网站色| 加勒比精品视频| 久久精品国产在热久久| av免费看网址| 日韩久久精品| 国产伦精品一区二区三区视频孕妇| av资源亚洲| 欧美大片欧美激情性色a∨久久| 爽爽视频在线观看| 91精品一区二区三区久久久久久| 日韩三级视频在线| 亚洲色大成网站www久久九九| 你懂的在线观看网站| 久久中文在线| 久久这里只有精品18| 精品一区二区三| 国产欧美综合精品一区二区| 美女视频一区| 欧美一级黑人aaaaaaa做受| 最新av在线播放| 在线视频欧美性高潮| 综合网在线观看| 亚洲精品成人精品456| 欧美三级视频网站| 91社区在线播放| 国产精品日日摸夜夜爽| 久久精品国产亚洲高清剧情介绍| 免费高清在线观看免费| 一区免费视频| 无码毛片aaa在线| 欧美偷拍综合| 久久精品99久久| 99久久人爽人人添人人澡| 国产在线a不卡| 欧美videos极品另类| 日韩久久免费电影| 亚洲爱情岛论坛永久| 欧美精品vⅰdeose4hd| 91porny九色| 日韩欧美精品在线观看| 日本在线观看视频网站| 亚洲另类色综合网站| 亚洲无人区码一码二码三码| 精品一区二区三区在线观看| 日韩精品一区中文字幕| 性8sex亚洲区入口| 日韩精品―中文字幕| 亚洲小说欧美另类婷婷| 黄色a级片免费看| 999精品一区| 亚洲电影免费| 成人情趣视频网站| 日韩av一级大片| 免费观看亚洲视频大全| 国产一区二区在线免费| 欧美亚洲综合视频| 91精品国产综合久久香蕉的用户体验| 欧美free嫩15| 国产精品高清免费在线观看| 日韩视频网站在线观看| 国产精品黄色av| 国产成人精品一区二区三区视频| 国产精品男人爽免费视频1| 精品网站在线| 国产日韩av高清| 精品一区二区三区中文字幕视频 | 国产成人一区二区三区影院| 免费看污久久久| 伊人久久一区| 国产精品久久久亚洲| 亚洲免费福利| 国产精品久久久av久久久| 日韩黄色在线| 亚洲xxxx做受欧美| 国产精品白丝av嫩草影院| 精品日本一区二区三区在线观看| 亚瑟一区二区三区四区| 日本在线视频不卡| 水蜜桃精品av一区二区| 青青草视频国产| 欧美色图一区| 伊人情人网综合| 国内精品福利| 四虎永久在线精品无码视频| 麻豆精品一二三| 中文字幕一二三| 91影院在线观看| 国产精品麻豆免费版现看视频| 亚洲私人影院在线观看| 日本熟妇成熟毛茸茸| 色诱亚洲精品久久久久久| 一区二区的视频| 亚洲成人网在线| 中文字幕在线视频区| 欧美贵妇videos办公室| 在线国产成人影院| 成人xxxxx色| 国产在线日韩精品| 成人一级生活片| 丝袜国产日韩另类美女| 99精品视频国产| 久久精品在这里| 青青草原国产视频| 一本大道综合伊人精品热热| 国产乱码精品一区二区三区精东 | 亚洲观看黄色网| 国产精品欧美极品| 日本少妇久久久| 777午夜精品免费视频| 视频三区在线观看| 欧美乱大交xxxxx另类电影| 欧洲一级精品| 国产亚洲精品美女久久久m| 欧美激情偷拍自拍| 欧美国产激情视频| 国产成人久久精品77777最新版本| 波多野结衣办公室33分钟| 一区二区三区四区五区视频在线观看| 中文字幕高清在线免费播放| 日韩免费一区二区| 91网在线播放| 青青草原一区二区| www.成人网| 91成人在线视频观看| 日韩主播视频在线| 国产麻豆xxxvideo实拍| 一区二区三区在线视频免费| 国产一级片免费在线观看| 亚洲高清色综合| 黄网av在线| 91影视免费在线观看| 日韩在线中文| 亚洲高清在线免费观看| 2欧美一区二区三区在线观看视频| 精品99在线观看| 欧美疯狂做受xxxx富婆| av网站无病毒在线| 日本亚洲欧美成人| 老牛国内精品亚洲成av人片| 国产黄色激情视频| 狠狠色综合色综合网络| 日本一卡二卡在线播放| 日韩欧美国产骚| 三级视频在线| 欧美一级视频一区二区| 日本久久成人网| 91好吊色国产欧美日韩在线| 成人黄色在线视频| 国产精品99精品无码视| 欧美刺激脚交jootjob| 成人影院在线观看| 亚洲最大福利视频| 欧美精选一区| 国产肥臀一区二区福利视频| 国产999精品久久| 久久久无码一区二区三区| 日韩欧美亚洲一区二区| 羞羞的视频在线看| 不卡视频一区二区| 91久久亚洲| 中文字幕乱码在线| 大荫蒂欧美视频另类xxxx| 亚洲av成人精品毛片| 日本aⅴ大伊香蕉精品视频| 精品一区在线| 亚洲va在线va天堂va偷拍| 亚洲人成小说网站色在线| 国产麻豆一精品一男同| 欧美裸体男粗大视频在线观看| 亚洲天堂av资源在线观看| 青春草国产视频| 91免费观看国产| 毛片在线免费播放| 久久亚洲国产精品成人av秋霞| 久久gogo国模啪啪裸体| 777av视频| 国产欧美视频一区二区| 97超碰人人草| 欧美激情精品久久久久久黑人 | 日韩熟女精品一区二区三区| 日韩h在线观看| 青青热久免费精品视频在线18| 亚洲视频小说| 国产91丝袜在线18| 日韩不卡在线播放| 日韩在线观看av| 超碰在线亚洲| 久久久久免费精品| 综合在线观看色| 欧美一级在线免费观看 | 精品久久免费| 久久久久久久久久网| 欧美国产日本韩| 国内精品久久久久久久久久| 97人洗澡人人免费公开视频碰碰碰| 国产欧美高清视频在线| 一级淫片在线观看| 欧美日韩性视频| 麻豆网站在线| 精品国产一区二区三区久久久久久| 日韩高清欧美激情| 特级片在线观看| 亚洲色图五月天| 亚洲精品观看| av网站在线不卡| 亚洲va国产天堂va久久en| 91亚洲精选| 免费av在线一区二区| 国产精品综合网| 自拍偷拍福利视频| 91精品国产一区| 一区二区电影在线观看|