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

Springboot整合策略模式概念->使用場景->優缺點->企業級實戰

開發 架構
策略模式得益于按照開閉原則進行設計,各個具體算法按照單一職責原則設計;提高了代碼的復用性,對客戶隱藏具體策略 (算法) 的實現細節,彼此完全獨立,擴展其余不受影響;避免if-else 或 switch 分支語句判斷;其缺點在于客戶端必須知道所有的策略類,增加了系統中類的個數。

一、前言

策略模式可能是在工作中使用最多的,也是在面試中最常提到的,代碼重構和優化的必備!
小編之前也是一直說,其實沒有真正的實戰;最近有了機會實戰了一下,來分享一下使用心得和在企業級的使用!

二、策略模式

1、什么是策略模式

策略模式,英文全稱是 Strategy Design Pattern。在 GoF 的《設計模式》一書中,它是這樣定義的:

定義一族算法類,將每個算法分別封裝起來,讓它們可以互相替換。策略模式可以使算法的變化獨立于使用它們的客戶端(這里的客戶端代指使用算法的代碼)。

2、策略模式結構組成

  • Strategy:抽象策略類,一般為接口或者策略類。
  • ConcreteStrategy:具體算法實現策略類。
  • Context:環境或者上下文類,用于統一執行具體策略。

其實以上三部分用白話文來解釋就是:
需要一個接口和策略進行規范和約束接口和方法,這時需要一些具體的實現算法類去繼承或者實現剛剛的接口和策略,最后通過一個環境或者上下文,也可以叫做工廠根據類型進行調用具體的算法!

3. 使用場景

  • 避免冗長的 if-else 或 switch 分支判斷。
  • 需要動態地在幾種算法中選擇一種。
  • 對客戶隱藏具體策略 (算法) 的實現細節,彼此完全獨立,擴展其余不受影響。

具體場景一般為:

  • 支付方式選擇。
  • 打折、滿減方式選擇。
  • 根據類型調用不同的系統。

4、優缺點

優點:

  • 擴展性好
  • 符合開閉原則
  • 符合單一職責原則
  • 可讀性好
  • 便于維護
  • 避免多層判斷

缺點:

  • 策略過多,導致策略類
  • 對新手讀代碼不友好

三、策略模式實戰

1、實戰例子

今天小編根據春夏秋冬四季需要做不同的事情來演示一下策略模式的使用方案。
需求是:
如果是春天,就要去放風箏
如果是夏天,就要去游泳
如果是秋天,就要去看楓葉
如果是冬天,就要去打雪仗
沒有使用策略模式的話,肯定就是
if-if else進行實現!
下面就帶大家體會一下具體使用哈!!

2、策略接口

/**
* 四季策略
* @author wangzhenjun
* @date 2022/12/1 9:30
*/
public interface SeasonsStrategy {

/**
* 根據季節去執行不同的方案
* @param seasons
* @return
*/
String execute(String seasons);
}

3、春季具體實現

/**
* 春季具體實現
* @author wangzhenjun
* @date 2022/12/1 9:34
*/
// 指定容器的名稱,不指定默認為類名稱首字母小寫
@Component("spring")
public class SpringStrategy implements SeasonsStrategy{
@Override
public String execute(String seasons) {

return seasons + "來了!我們一起去放風箏吧!";
}
}

4、夏季具體實現

/**
* 夏季具體實現
* @author wangzhenjun
* @date 2022/12/1 9:34
*/
// 指定容器的名稱,不指定默認為類名稱首字母小寫
@Component("summer")
public class SummerStrategy implements SeasonsStrategy{
@Override
public String execute(String seasons) {

return seasons + "來了!我們一起去游泳吧!";
}
}

5、秋季具體實現

/**
* 秋季具體實現
* @author wangzhenjun
* @date 2022/12/1 9:34
*/
// 指定容器的名稱,不指定默認為類名稱首字母小寫
@Component("autumn")
public class AutumnStrategy implements SeasonsStrategy{
@Override
public String execute(String seasons) {

return seasons + "來了!我們一起去放看楓葉吧!";
}
}

6、冬季具體實現

/**
* 冬季具體實現
* @author wangzhenjun
* @date 2022/12/1 9:34
*/
// 指定容器的名稱,不指定默認為類名稱首字母小寫
@Component("winter")
public class WinterStrategy implements SeasonsStrategy{
@Override
public String execute(String seasons) {

return seasons + "來了!我們一起去打雪仗吧!";
}
}

7、上下文工廠實現

private Map<String, SeasonsStrategy> seasonsMap;這是最重要的,很多時候我們都知道怎么進行策略和實現怎么寫,不知道怎么統一去放進去,來進行調用,可以自己放在map中。當然spring已經給我們組裝好了,只要按需調用即可!

核心:
Spring會自動將Strategy接口的實現類注入到這個Map中,key為bean id,value值則為對應的策略實現類!?

/**
* 環境或者上下文類,用于統一執行具體策略
* @author wangzhenjun
* @date 2022/12/1 9:56
*/
@Component
public class SeasonsFactory {
/**
* Spring會自動將Strategy接口的實現類注入到這個Map中,key為bean id,value值則為對應的策略實現類
*/
@Autowired
private Map<String, SeasonsStrategy> seasonsMap;

/**
* 處理四季統一入口方法
* @param seasons
* @param beanName
* @return
*/
public String handle(String seasons,String beanName){
// 根據bean的名稱獲取對應的算法處理類
SeasonsStrategy seasonsStrategy = seasonsMap.get(beanName);
String execute = seasonsStrategy.execute(seasons);
return execute;
}
}

8、controller處理

@Slf4j
@RestController
@RequestMapping("/test")
public class TestController {

@Autowired
private SeasonsFactory seasonsFactory;

@GetMapping("/strategyTest/{seasons}/{beanName}")
public Result strategyTest(@PathVariable("seasons") String seasons,@PathVariable("beanName") String beanName){
String handle = seasonsFactory.handle(seasons, beanName);
return Result.success(handle);
}
}

9、測試

http://localhost:8087/test/strategyTest/春天/spring。

圖片

http://localhost:8087/test/strategyTest/夏天/summer。

圖片

四、總結

在策略模式中定義了一系列算法,將每一個算法封裝起來,并讓它們可以相互替換,互不影響。

策略模式得益于按照開閉原則進行設計,各個具體算法按照單一職責原則設計;提高了代碼的復用性,對客戶隱藏具體策略 (算法) 的實現細節,彼此完全獨立,擴展其余不受影響;避免if-else 或 switch 分支語句判斷;其缺點在于客戶端必須知道所有的策略類,增加了系統中類的個數。

在日常開發一般用于消除多重判斷,有時候不要為了用設計模式而用設計模式,一定要結合業務場景,過度設計也是很致命的??!

責任編輯:姜華 來源: 小王博客基地
相關推薦

2023-02-22 09:16:22

2023-08-29 08:47:13

設計模式Springboot

2023-06-05 08:07:33

JavaJava SPI

2022-10-28 07:15:26

策略模式使用場景UML

2022-12-23 08:28:42

策略模式算法

2011-12-06 14:02:27

企業級移動開發

2023-04-28 08:21:36

SpringBoot聲明式事務編程式事務

2021-03-04 09:00:00

架構Lambda工具

2024-01-25 10:14:09

HashSetHashMapJava

2018-04-26 10:15:06

IBMLinuxONE

2021-04-12 10:11:42

TiDB 5.0數據庫

2023-02-02 09:37:59

消息隊列MQ

2009-01-03 14:54:36

ibmdwWebSphere

2023-02-15 18:12:43

開發企業級CLI

2022-09-20 07:36:43

云原生存儲方案

2011-07-11 09:32:54

VMware ToolVMware性能

2010-05-12 22:34:16

2012-11-07 15:04:13

紅帽OpenShift

2021-06-01 08:25:06

Node.jsJavaScript運行

2012-08-24 11:05:51

點贊
收藏

51CTO技術棧公眾號

久久精品人成| 欧美丰满老妇厨房牲生活| 久久久久久久少妇| 日本中文在线观看| 懂色av中文字幕一区二区三区| 国内精品久久久久| 精品视频第一页| 盗摄牛牛av影视一区二区| 欧美在线免费观看视频| 91精品国产吴梦梦| 97视频中文字幕| 精品一区二区三孕妇视频| 视频精品一区二区三区| 色综合久久久久综合体| 麻豆一区二区三区在线观看| 能在线看的av| 成人国产在线观看| 成人免费福利在线| 久久精品视频5| 亚洲午夜久久久久久尤物 | 国产xxxxxx| 丝袜诱惑制服诱惑色一区在线观看 | 国产精品一区二区入口九绯色| 自拍偷拍亚洲图片| 日韩欧美国产中文字幕| 免费特级黄色片| 欧美性猛交xxx乱大交3蜜桃| 91久色porny| 成人在线视频网址| 国产麻豆免费观看| 免费av成人在线| 欧美一区二区三区精品电影| 国产性70yerg老太| 亚洲综合专区| 菠萝蜜影院一区二区免费| 亚洲精品午夜视频| 台湾佬综合网| 亚洲精品按摩视频| 美女黄色一级视频| 日韩一区二区三区精品视频第3页 日韩一区二区三区精品 | 成人18视频在线观看| 欧美日韩国产区| 国产免费一区二区视频| av免费在线免费观看| 成人欧美一区二区三区| 亚洲视频电影| av在线首页| 久久精品亚洲乱码伦伦中文 | 国产精品高潮呻吟久久av野狼| 日本黄色片视频| 亚洲二区精品| 欧美激情在线狂野欧美精品| 九九热国产精品视频| 综合在线一区| 欧美大片免费看| 久久免费精彩视频| 亚洲精品美女| 欧美在线性视频| 亚洲天堂男人av| 日韩在线a电影| 国产精品视频久久久久| 中文字幕永久免费视频| 精品制服美女丁香| 91久久精品日日躁夜夜躁国产| 91亚洲精品国偷拍自产在线观看| 久久国产夜色精品鲁鲁99| 国产欧美亚洲视频| 999精品国产| 成人黄色大片在线观看 | 成人在线观看一区| 国产精品色在线| 三年中国中文在线观看免费播放| 黄色网页在线观看| 亚洲在线视频网站| 黄网站欧美内射| 成人影院av| 欧美日韩一二区| 亚洲色图欧美自拍| 国产香蕉精品| 国产亚洲免费的视频看| 男人的午夜天堂| 精品69视频一区二区三区Q| 992tv成人免费视频| а中文在线天堂| 国产精品综合二区| 蜜桃久久精品乱码一区二区| 亚洲精品传媒| 亚洲h动漫在线| 成人午夜激情av| 免费观看性欧美大片无片| 亚洲福利在线播放| av资源在线免费观看| 黄色成人91| 国产精品视频在线播放| 99热在线只有精品| 91老师片黄在线观看| 中文字幕第一页亚洲| 成人影院在线视频| 欧美日韩国产综合草草| 日本护士做爰视频| 婷婷激情综合| 欧美在线亚洲在线| 精品国产乱码一区二区三| 91麻豆123| 黄色一级片国产| 久久天堂av| 亚洲国产高清高潮精品美女| 日本高清黄色片| 伊人久久久大香线蕉综合直播| 国产精品va在线播放| 丁香花免费高清完整在线播放| 久久久国产精品午夜一区ai换脸| 精品久久久无码人妻字幂| 精品3atv在线视频| 精品日韩99亚洲| 来吧亚洲综合网| 久久婷婷激情| 国产免费一区| 污污视频在线| 欧美精品自拍偷拍| x88av在线| 宅男噜噜噜66一区二区| 91久久大香伊蕉在人线| 尤物网在线观看| 一本大道久久a久久精品综合| 中文字幕1区2区| 91一区二区三区四区| 国产精国产精品| 亚洲av成人无码久久精品老人 | 伊人男人综合视频网| 中文字幕在线观看免费视频| 国产精品综合av一区二区国产馆| 亚洲国产欧美日韩| 国精产品一区二区三区有限公司 | 欧美视频在线观看一区| 亚洲专区区免费| 亚洲精品婷婷| 国产亚洲精品美女久久久m| 日本色护士高潮视频在线观看 | 亚洲国产你懂的| 91香蕉视频免费看| 亚洲乱码精品| 91欧美精品午夜性色福利在线| 国产福利在线视频| 欧洲精品一区二区三区在线观看| 欧美疯狂xxxx大交乱88av| 97se视频在线观看| 高清一区二区三区四区| 亚洲自拍另类综合| 特级特黄刘亦菲aaa级| 蜜臀精品一区二区三区| 国产女18毛片多18精品| 另类成人小视频在线| 四虎影院一区二区三区 | 国产chinese中国hdxxxx| 欧美天天视频| 国产精品区一区二区三在线播放| 羞羞的视频在线看| 精品国产一区二区精华| 国产成人自拍视频在线| 91麻豆蜜桃一区二区三区| 免费高清在线观看免费| 国产精品免费大片| 国产精品美女久久久免费| 午夜小视频在线| 欧美一区三区二区| 激情小说中文字幕| 成人av第一页| 91视频免费版污| 久久麻豆精品| 国产超碰91| 日韩免费va| 久久色免费在线视频| 国产香蕉在线观看| 一本一本大道香蕉久在线精品| 极品蜜桃臀肥臀-x88av| 国产在线看一区| 国产欧美日韩网站| 热久久天天拍国产| 91传媒免费看| 惠美惠精品网| 久久久精品国产亚洲| 成人免费公开视频| 欧美专区日韩专区| 黄色一级视频在线观看| 久久综合色婷婷| 久久久久久久高清| 亚洲深夜影院| 日韩欧美亚洲区| 99视频精品全部免费看| 91亚洲国产成人精品一区| 一区二区三区中文字幕| 性色av蜜臀av色欲av| 久久66热偷产精品| 国产美女网站在线观看| 999国产精品| 麻豆蜜桃91| 日韩精品成人| 人妖精品videosex性欧美| www国产在线观看 | 成年人看片网站| 葵司免费一区二区三区四区五区| 色香蕉在线观看| 久久av中文| 国产精品久久久久久久久久久久午夜片 | 亚洲综合色噜噜狠狠| 成人片黄网站色大片免费毛片| 国产一区二区三区四| 国产熟人av一二三区| 激情久久久久久| 在线观看一区二区三区三州 | 成人在线视频一区二区| 少妇一级淫免费放| 国产麻豆综合| 日韩 欧美 视频| 亚洲欧美偷拍自拍| 水蜜桃亚洲精品| 国产精品日韩精品中文字幕| 国产精品免费视频一区二区| 99久久久国产| 国产精品日韩在线观看| 亚洲精品成人图区| 97视频在线播放| 午夜小视频在线观看| 精品激情国产视频| 粉嫩av在线播放| 亚洲乱码国产乱码精品精| www.蜜臀av| 91麻豆精品91久久久久同性| 成人午夜精品视频| 色婷婷久久一区二区三区麻豆| 天天综合网入口| 亚洲风情在线资源站| 久久国产精品二区| 一区二区三区欧美日| 亚洲天堂网av在线| 亚洲欧洲成人自拍| 久久嫩草捆绑紧缚| 亚洲视频小说图片| 亚洲天堂黄色片| 亚洲免费三区一区二区| 日本中文字幕免费在线观看| 亚洲欧洲一区二区在线播放| 多男操一女视频| 亚洲欧洲另类国产综合| 希岛爱理中文字幕| 亚洲欧洲中文日韩久久av乱码| 日韩在线视频免费看| 国产精品国产馆在线真实露脸 | 91中文在线| 九九久久久久99精品| 污的网站在线观看| 久久久久久97| 精精国产xxx在线视频app| 欧美一级高清免费播放| 成人欧美大片| 国产精品亚洲аv天堂网| 日本久久一区| 999国内精品视频在线| aaa国产精品视频| 久久久久久久久久久久久久一区| 在线成人动漫av| 日韩欧美视频一区二区三区四区| 久久免费大视频| 青草全福视在线| 亚洲裸体俱乐部裸体舞表演av| 国产二级片在线观看| 日韩成人精品在线| 爽爽爽在线观看| 成人av在线观| 中文字幕免费在线看线人动作大片| 国产免费成人在线视频| 一区二区三区影视| 亚洲一区二区三区四区在线| 欧美三级午夜理伦| 欧美日韩中文精品| www.99视频| 亚洲精品视频免费在线观看| 在线观看免费高清完整| 欧美高跟鞋交xxxxxhd| 在线视频超级| 国产欧美日韩免费| 99久久免费精品国产72精品九九| 茄子视频成人在线观看| 欧美69视频| 日本免费一级视频| 国产曰批免费观看久久久| 国产毛片毛片毛片毛片毛片毛片| 国产精品视频一二三区| 久久久久久天堂| 欧美丝袜丝交足nylons图片| 免费的黄色av| xvideos亚洲| 亚洲永久av| 91在线短视频| 成人综合专区| 久久国产精品视频在线观看| 美女www一区二区| 中文乱码人妻一区二区三区视频| 一区在线观看视频| 国产三级精品三级在线观看| 精品黑人一区二区三区久久| 成人在线观看一区| 91av视频在线观看| 成人日韩视频| 婷婷精品国产一区二区三区日韩| 亚洲手机视频| 亚洲天堂伊人网| 久久久久久久久久久99999| 久久免费精彩视频| 在线电影欧美成精品| 成年人在线观看网站| 91成品人片a无限观看| 91精品入口| 成年人三级视频| 蜜桃av一区二区在线观看 | 日韩影视高清在线观看| 男人日女人的bb| 蜜桃视频在线观看一区| 少妇久久久久久久久久| 黄色成人在线免费| 亚洲成人77777| 欧美另类在线观看| 免费视频观看成人| 视频一区不卡| 免播放器亚洲| 给我看免费高清在线观看| 亚洲福利一区二区| 国产综合视频在线| 欧美激情在线狂野欧美精品| 国产成人免费视频网站视频社区 | 日本一区二区三区精品视频| 亚洲专区欧美专区| aa片在线观看视频在线播放| 五月综合激情网| 五月婷在线视频| 51ⅴ精品国产91久久久久久| 欧美色资源站| 国产美女主播在线播放| bt欧美亚洲午夜电影天堂| 中文字幕第28页| 亚洲精品国产精品久久清纯直播| 多野结衣av一区| 久久av一区二区三区亚洲| 日韩天天综合| 亚洲图片综合网| 欧美日韩中文字幕在线| 欧美孕妇孕交| 国产精品国内视频| 欧美残忍xxxx极端| 一级黄色在线播放| 亚洲精品一二三| 亚洲成人777777| 91干在线观看| 精品黄色一级片| 97人人爽人人| 亚洲自拍偷拍网站| 网站黄在线观看| 日本亚洲精品在线观看| 日韩视频在线观看| 超碰在线资源站| 亚洲激情欧美激情| 午夜视频免费看| 国产精品看片资源| 国产精品成人a在线观看| 亚洲精品一区二区18漫画| 婷婷中文字幕一区三区| 成人影视在线播放| 亚洲一区美女视频在线观看免费| 亚洲网址在线| 日韩精品无码一区二区三区久久久| 欧美丝袜丝交足nylons图片| av文字幕在线观看| 久久99精品久久久久久久久久| 日韩精品成人一区二区三区| 老司机成人免费视频| 精品久久人人做人人爽| 最新欧美电影| 六月婷婷激情网| 99精品视频一区二区三区| 波多野结衣在线观看一区| 久久久精品免费视频| 欧美jizz19性欧美| xxx国产在线观看| 亚洲国产欧美日韩另类综合| 韩国福利在线| 99精品国产高清一区二区| 久久尤物视频| 欧美日韩精品在线观看视频 | 久久久综合亚洲91久久98| 日av在线不卡| 国产真人真事毛片| 在线观看国产欧美| 精品国产午夜肉伦伦影院| 蜜桃免费在线视频| 午夜激情久久久| 国内精品久久久久国产| 欧美一级日本a级v片| 豆国产96在线|亚洲| 国产精品久久久久久久久久久久久久久久久久|