国产精品电影_久久视频免费_欧美日韩国产激情_成年人视频免费在线播放_日本久久亚洲电影_久久都是精品_66av99_九色精品美女在线_蜜臀a∨国产成人精品_冲田杏梨av在线_欧美精品在线一区二区三区_麻豆mv在线看

策略模式介紹以及具體使用場景

開發(fā) 前端
InitializingBean接口為bean提供了初始化方法的方式,它只包括afterPropertiesSet方法,凡是繼承該接口的類,在初始化bean的時候都會執(zhí)行該方法。

前言

在實際開發(fā)過程中經(jīng)常會出現(xiàn)行為不同的實現(xiàn),比如支付,那可能是微信支付,阿里支付,銀聯(lián)等支付的具體實現(xiàn)。要你用一個設(shè)計模式來實現(xiàn)

定義

策略模式定義了一系列算法,并將每個算法封裝起來,使他們可以相互替換,且算法的變化不會影響到使用算法的客戶

UML類圖

具體實現(xiàn)

InitializingBean接口說明

1、InitializingBean接口為bean提供了初始化方法的方式,它只包括afterPropertiesSet方法,凡是繼承該接口的類,在初始化bean的時候都會執(zhí)行該方法。

2、spring初始化bean的時候,如果bean實現(xiàn)了InitializingBean接口,會自動調(diào)用afterPropertiesSet方法。

3、在Spring初始化bean的時候,如果該bean實現(xiàn)了InitializingBean接口,并且同時在配置文件中指定了init-method,系統(tǒng)則是先調(diào)用afterPropertieSet()方法,然后再調(diào)用init-method中指定的方法。

策略工廠

import java.util.Map;
import java.util.concurrent.ConcurrentHashMap;

public class StrategyFactory {

private static final Map<String, PayService> serviceMap = new ConcurrentHashMap<>();

public static void register(PayTypeEnum payTypeEnum, PayService service){
serviceMap.put(payTypeEnum.getType(), service);
}

public static Boolean getService(String payType){
PayService payService = serviceMap.get(payType);
if(payService!=null){
return payService.pay(payType);
}
return Boolean.FALSE;
}
}

支付枚舉

import lombok.AllArgsConstructor;
import lombok.Getter;

@Getter
@AllArgsConstructor
public enum PayTypeEnum {
WX("wx", "微信"),
ZFB("zfb","支付寶支付"),;
private String type;
private String desc;
}

具體業(yè)務(wù)類

1、支付入口

public interface PayService {
Boolean pay(String payType);
}

2、支付入口具體實現(xiàn)

微信支付邏輯

import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.InitializingBean;
import org.springframework.stereotype.Service;

@Service
@Slf4j
public class WxPayService implements PayService, InitializingBean {

@Override
public void afterPropertiesSet() throws Exception {
StrategyFactory.register(PayTypeEnum.WX,this);
}

@Override
public Boolean pay(String payType){
log.info("調(diào)用微信支付");
return true;
}
}

阿里支付具體邏輯

import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.InitializingBean;


import org.springframework.stereotype.Service;

@Service
@Slf4j
public class AliPayService implements PayService, InitializingBean {
@Override
public void afterPropertiesSet(){
StrategyFactory.register(PayTypeEnum.ZFB, this);
}
@Override
public Boolean pay(String payType){
log.info("調(diào)用阿里支付");
return true;
}
}

3、定義一個控制器測試

import com.example.demo.celuemoshi.StrategyFactory;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RestController;

@RestController
public class PayController {

@GetMapping("pay/{type}")
public boolean pay(@PathVariable("type") String type){
StrategyFactory.getService(type);
return true;
}
}

測試結(jié)果

測試微信支付:http://localhost:10001/pay/wx

測試阿里支付:http://localhost:10001/pay/zfb

責(zé)任編輯:武曉燕 來源: 今日頭條
相關(guān)推薦

2020-04-07 14:20:10

RabbitMMySQL數(shù)據(jù)庫

2023-03-20 09:17:13

策略模式Springboot

2023-02-22 09:16:22

2021-08-29 22:05:04

對象自動回收

2023-06-06 08:18:24

Kafka架構(gòu)應(yīng)用場景

2015-06-26 11:33:23

Python裝飾器使用場景實踐

2020-10-29 07:16:26

布隆過濾器場景

2021-11-04 06:58:32

策略模式面試

2014-05-15 09:43:11

CloudaMobile WebANodejs

2023-05-16 07:47:18

RabbitMQ消息隊列系統(tǒng)

2018-08-15 09:48:27

數(shù)據(jù)庫Redis應(yīng)用場景

2021-04-27 08:31:10

前端應(yīng)用場景

2020-06-16 15:40:32

閉鎖柵欄線程

2021-08-06 10:43:56

Kubernetes容器

2009-09-24 16:55:27

策略模式

2023-10-29 15:21:42

負(fù)載均衡器分布式系統(tǒng)后端

2024-05-11 12:47:16

Kafka場景.高性能

2022-10-12 07:24:18

大文件哈希算法Hash

2024-04-11 13:41:47

2021-08-13 12:31:26

Redis代碼Java
點贊
收藏

51CTO技術(shù)棧公眾號

日韩va亚洲va欧美va久久| 免费人成在线观看网站| 99ri日韩精品视频| 亚洲福利视频三区| av影院在线播放| 日韩av自拍| 精品国偷自产在线| 尤物在线网址| 欧美视频在线视频| 欧美黄色一级片视频| 石原莉奈在线亚洲二区| 日韩女优在线播放| 日本一区二区三区中文字幕| 678五月天丁香亚洲综合网| 99视频入口| av不卡一区二区三区| 久久综合中文色婷婷| 自拍偷拍一区| 美女撒尿一区二区三区| sm久久捆绑调教精品一区| 亚洲精品成人精品456| 国产又粗又爽又黄的视频| 羞羞色午夜精品一区二区三区| 高清一区二区三区| 日本欧美一区二区三区乱码| 欧美三级电影在线看| 你懂的视频一区二区| 在线观看日韩精品| 日韩免费av一区二区三区| 9色国产精品| 国产视频久久久久| 玩弄中年熟妇正在播放| 伊人青青综合网| 亚洲一级在线观看| 97视频在线免费播放| 老妇喷水一区二区三区| 久99九色视频在线观看| 污片在线观看一区二区| 亚洲一区二区三区三| 不卡在线视频中文字幕| 亚洲第一精品自拍| 欧美亚洲国产一区二区三区va| 国产日韩在线一区二区三区| 成人一级毛片| 热久久免费视频精品| 韩国女主播一区二区三区| 欧美成aaa人片在线观看蜜臀| 性高爱久久久久久久久| 亚洲久久久久久久久久| 免费观看亚洲| 国产亚洲aⅴaaaaaa毛片| 成人自拍视频网| 久久天堂电影网| 91蝌蚪精品视频| 青青草成人在线| 日韩免费av| 精品免费国产| 麻豆国产精品一区二区三区| 97超碰人人爱| 波多野结衣亚洲一区| 日韩毛片在线免费看| 国产香蕉久久精品综合网| 亚洲四虎av| 精品国产精品三级精品av网址| 可以免费看污视频的网站在线| 欧美色综合天天久久综合精品| 激情视频在线观看| 成人国产免费视频| 欧美激情一二三区| 麻豆传媒在线视频| 欧美一区二区三区白人| 免费在线看电影| 色噜噜狠狠狠综合曰曰曰88av| 亚洲精品乱码日韩| 国产成人精品日本亚洲专区61 | aa国产精品| 日韩av在线电影观看| 国产成人在线看| 综合激情丁香| 欧美三片在线视频观看| 日日夜夜天天综合入口| 日韩中文娱乐网| 日韩影视高清在线观看| 国产偷国产偷亚洲高清97cao| 精品一区二区三区视频| 999sesese| 欧美久久久影院| 日韩综合av| 欧美国产极速在线| 午夜精品影院| 欧美黑人在线观看| 一区二区三区在线视频播放 | eeuss鲁片一区二区三区在线观看| 琪琪五月天综合婷婷| 欧美性大战久久久久久久| 快播电影网址老女人久久| 国产精品成人品| 狠狠久久亚洲欧美| 黄网站免费观看| 欧美精品一区二区三区蜜桃视频| 亚洲1区在线观看| 欧美美女一区二区| 欧美成人全部免费| 欧美成人一品| xxxx18hd亚洲hd捆绑| 欧美视频中文字幕在线| 超碰国产一区| 成人中文字幕在线观看| 国产成a人亚洲精品| 免费观看成年在线视频网站| 久久精品久久久久久| 精久久久久久| 成人短剧在线观看| 亚洲一级片在线看| 亚洲青色在线| 久久mv成人精品亚洲动漫| 亚洲精品视频播放| 亚洲字幕久久| 中文av一区二区三区| 亚洲国产精品高清久久久| 小处雏高清一区二区三区| 国产欧美在线一区| 精品国产乱码久久| 国内综合精品午夜久久资源| 亚洲一级免费在线观看| 国产亚洲激情在线| 久久久久国产精品午夜一区| 亚洲字幕成人中文在线观看| 成人精品gif动图一区| 搞黄视频在线观看| 91高清视频免费观看| 国产传媒日韩欧美成人| 国产精品毛片无遮挡高清| 国产视频一二区| 亚洲精品视频在线播放| 国产精品一页| 性xxxx丰满孕妇xxxx另类| 国模吧一区二区| a美女胸又www黄视频久久| 第一福利在线视频| 韩国精品一区二区三区六区色诱| 最新中文字幕一区二区三区 | 亚洲中国最大av网站| av在线成人| 国产日韩欧美精品在线观看| 精品少妇一区二区三区日产乱码| 欧美伊人影院| 四虎影院在线域名免费观看| 91精品国产91久久久久久最新| 久久久亚洲综合| 韩日一区二区| 免费在线看黄色片| 亚洲精品中文字幕av| 视频一区二区中文字幕| 在线国产91| 蜜桃传媒视频第一区入口在线看| 欧美日韩中文字幕| 亚洲乱码精品| 欧美大片aaa| 国产精品一区二区免费| 欧美综合视频在线观看| 国产精品av一区二区| 电影av一区| 久久久久久99| 亚洲大胆人体视频| 精品一二线国产| 日本少妇一区| 欧美色图另类小说| 欧美日本高清视频| 国产精品三级av| 中文字幕一区二区三区四区久久 | 亚洲美女动态图120秒| 视频一区在线播放| 牛牛精品在线视频| 天天人人精品| 亚洲色在线视频| 99国产精品久| 久久狠狠久久| 性欧美精品孕妇| 久久99精品久久久久久水蜜桃 | 2020中文字字幕在线不卡| 久久久久亚洲精品国产| 一区二区三区在线视频播放| 久久久精品久久久久久96| 三级外国片在线观看视频| 亚洲国内在线| 久久精品视频在线播放| 国产精品网站一区| 极品美女一区二区三区| av色图一区| av电影一区二区三区| 久久99久久久久久久噜噜| 一区二区三区精品| 亚洲欧美日韩国产综合精品二区| 久热在线观看视频| www.国产区| 亚洲自拍偷拍区| 亚洲欧美另类国产| 亚洲免费资源在线播放| 亚洲一区二区三区免费在线观看|