精品欧美一区二区三区在线观看 _久久久久国色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| 亚洲精品国产偷自在线观看| 日韩一区二区精品在线观看| 蜜桃传媒一区二区三区| 韩国三级在线观看久| 精品97人妻无码中文永久在线| 97久久精品人搡人人玩 | 国产精品亚洲不卡a| 国产色无码精品视频国产| 91蜜桃臀久久一区二区| 色999日韩国产欧美一区二区| 在线不卡日本| 污视频在线免费| 久久精品国产99久久6| 久久全球大尺度高清视频| 亚洲丝袜一区在线| 日韩免费电影一区二区| 国产美女免费视频| 爽爽淫人综合网网站| 九九热最新视频//这里只有精品 | 国产欧美日韩麻豆91| 97人摸人人澡人人人超一碰| 午夜久久久久久久久久影院| 亚洲天堂男人| 久久精品99国产精品酒店日本| 一本加勒比波多野结衣| 国产精品亚洲四区在线观看| 91黄色免费版| 国产精品一区二区免费在线观看| caopo在线| 国产精品毛片a∨一区二区三区| 精品国产aⅴ麻豆| av中文字幕在线免费观看| 日本不卡不码高清免费观看| 欧美一区二区三区精品电影| 日韩女优在线观看| 国产一在线精品一区在线观看| 日韩在线观看网址| 欧美亚洲色综久久精品国产| 蜜桃成人av| 亚洲精品美女久久久| 中国男女全黄大片| 国产精品一区免费在线 | 日本一区二区三区在线免费观看| 91国内外精品自在线播放| 天海翼亚洲一区二区三区| 亚洲成人自拍网| 日本久久久网站| 成人h片在线播放免费网站| 久久久精品人妻一区二区三区四 | eeuss影院一区二区三区| 亚洲在线免费看| 性做久久久久久久久久| 国产成人一级电影| 国产成人看片| 人人妻人人玩人人澡人人爽| aaa亚洲精品| 精品国产综合区久久久久久| 天堂网在线中文| aa级大片欧美| 日韩aⅴ视频一区二区三区| 国产区视频在线播放| 久久精品视频一区二区三区| 欧美日韩在线播放一区二区| 欧洲免费在线视频| 国产喂奶挤奶一区二区三区| 日韩国产欧美一区| 99免在线观看免费视频高清| 综合中文字幕亚洲| 800av在线免费观看| 韩国成人免费视频| 色综合天天视频在线观看| www.欧美日本| vam成人资源在线观看| 欧美xxx久久| 一区二区三区少妇| 国产欧美日韩精品高清二区综合区| 亚洲天堂精品在线| 日韩在线一卡二卡| 激情成人亚洲| 国产成人精品av在线| 一本色道久久综合无码人妻| 国产成人av自拍| 精品一区二区三区国产| aaa日本高清在线播放免费观看| 亚洲美女视频在线观看| 欧美三级在线观看视频| 成人做爰视频www| 日韩小视频在线观看专区| 亚洲天堂成人av| 99久久视频| 久久理论片午夜琪琪电影网| 成人毛片一区二区三区| 国产麻豆成人传媒免费观看| 欧美精品七区| 青草视频在线免费直播| 色婷婷av久久久久久久| 樱花草www在线| 欧美影院天天5g天天爽| 色吧影院999| 日韩欧美中文字幕一区二区| 麻豆专区一区二区三区四区五区| 国产精品免费看一区二区三区| 精品视频二区| 亚洲亚洲人成综合网络| 中国黄色片免费看| 少妇精品导航| 欧美人交a欧美精品| 国产美女www爽爽爽| 成人美女在线观看| dy888午夜| 欧美在线va视频| 亚洲成人动漫在线播放| 日本成人精品视频| 玖玖精品视频| 国产乱码精品一区二区三区卡| 午夜视频在线观看免费视频| 精品国产鲁一鲁一区二区张丽 | 久久理论电影网| 久久99久久久久久| 精品久久亚洲| 色偷偷偷亚洲综合网另类 | 欧美一区二区在线免费观看| 精品人妻一区二区三区蜜桃视频| 最新日韩av| 91精品一区二区| 91精品国产91久久久久游泳池 | 视频精品在线观看| 91国自产精品中文字幕亚洲| 国产99999| 亚洲色图20p| 精品久久久99| 偷偷www综合久久久久久久| 国产精品极品尤物在线观看 | 久久久久久97| 精品国产亚洲AV| 亚洲品质自拍视频| 午夜福利123| 91精品天堂福利在线观看| 国产日韩中文字幕| 免费在线观看黄色| 欧美疯狂性受xxxxx喷水图片| 中文字幕免费高清| 日韩影院免费视频| 日韩欧美视频第二区| 亚洲第一会所| 自拍偷拍亚洲精品| 一级α片免费看刺激高潮视频| 中文欧美字幕免费| 中文字幕第17页| 亚洲老妇激情| av免费精品一区二区三区| 日本一本在线免费福利| 亚洲精品在线一区二区| 国产精品自拍视频一区| 91视频你懂的| 老司机午夜av| 91视频一区| 91在线短视频| 高清视频在线观看三级| 日韩精品极品在线观看播放免费视频| 国产成人在线免费观看视频| 2023国产精品| 黄大色黄女片18第一次| 外国成人免费视频| 91久久爱成人| 久久男人av资源站| 一区二区亚洲欧洲国产日韩| 亚洲视频在线观看一区二区| 亚洲三级电影全部在线观看高清| 巨乳女教师的诱惑| 亚洲韩日在线| 天天人人精品| 亚洲一区二区三区中文字幕在线观看 | 国产网站在线免费观看| 日韩欧美的一区| 国产精品xxxx喷水欧美| 国产日韩欧美精品综合| 日韩av一卡二卡三卡| 在线播放精品| 日韩亚洲视频| 伊人久久亚洲| 国产xxx69麻豆国语对白| 免费网站免费进入在线| 欧美精品一区二区三区蜜臀| 亚洲国产精品无码久久久| 亚洲欧美国产高清| 国产精品1000部啪视频| 国内外成人在线| 黄页免费在线观看视频| 日本一区二区高清不卡| 国产精品麻豆免费版| 全球最大av网站久久| 97精品国产91久久久久久| 97在线观看免费观看高清| 亚洲二区中文字幕| 99re热视频| 性感美女极品91精品| 国产精品理论在线| 91麻豆国产福利精品| www.51色.com| 日韩中文字幕不卡| www.成年人视频| 国产精品成人av| 欧美成ee人免费视频| 日韩成人在线观看视频| 国产精品高潮呻吟久久av野狼| 欧美黑人猛交| www.xxxx欧美| 国产福利小视频在线| 精品国产凹凸成av人网站| 91精品国产乱码久久久| 欧美视频中文字幕在线| 久久99久久98精品免观看软件 | 中文字幕精品—区二区日日骚| 久久免费视频66| 亚洲在线视频福利| 日本一区二区三区中文字幕| 日本国产欧美一区二区三区| 丁香花在线影院| 欧美高清在线播放| 免费在线观看av网站| 亚洲一区二区久久| 视频在线不卡| 欧美精品一区二区久久久| 国产乱淫a∨片免费视频| 欧美日韩一区二区三区四区| 欧美brazzers| 色综合色综合色综合 | 欧美精品免费视频| 国产第一页在线观看| 欧美午夜电影在线| 国产女同在线观看| 五月天国产精品| 国产午夜精品无码| 亚洲综合视频网| 青青操国产视频| 一区二区三区在线高清| 全程偷拍露脸中年夫妇| 一区二区在线免费| 欧美xxxx黑人xyx性爽| 亚洲视频 欧洲视频| 日韩在线观看免| 国产精品久久久久久久久搜平片 | 精品av中文字幕在线毛片| 日韩电影中文字幕在线| 天堂中文字幕在线| 香蕉久久夜色精品国产使用方法| 欧美在线观看天堂一区二区三区| 99久久国产综合精品色伊| 91麻豆精品久久久久蜜臀| 日韩美女免费线视频| 91专区在线观看| 日本少妇裸体做爰| 波多野一区二区| 亚洲欧美视频| 亚洲国产岛国毛片在线| 1区1区3区4区产品乱码芒果精品| 日韩精品影片| 国产精品电影观看| a成人v在线| 成人在线中文字幕| 日韩精品一区二区三区中文 | 精产国品一区二区| 在线看一区二区| 亚洲中文字幕在线一区| 欧美一区二区在线观看| 丰满人妻av一区二区三区| 亚洲国产私拍精品国模在线观看| 三区在线视频| 最近中文字幕2019免费| 大片免费在线观看| 久久免费福利视频| 日本欧美一区| 91免费看网站| 一区二区三区日本久久久| 色婷婷精品国产一区二区三区| 国产国产精品| 国产二级片在线观看| 蜜桃av噜噜一区| 911亚洲精选| 国产欧美日韩在线| 久久精品国产亚洲av无码娇色 | 亚洲欧美成人vr| 亚洲欧洲一区二区| 激情欧美丁香| 一区二区三区韩国| 盗摄精品av一区二区三区| 免费看污片的网站| 一区二区三区四区五区视频在线观看| 伊人久久综合视频| 555夜色666亚洲国产免| 图片区 小说区 区 亚洲五月| 日韩综合视频在线观看| 国产剧情av在线播放| 国产一区二区在线免费视频| www.久久东京| 一区二区三区欧美在线| 中文精品视频| 久久久久久久高清| 久久久高清一区二区三区| 欧美精品xxxxx| 欧美色欧美亚洲另类二区| 日本韩国在线观看| 久久久久北条麻妃免费看| 中国色在线日|韩| 91成人免费视频| 国产露脸无套对白在线播放| 天堂资源在线中文精品| 中文国产在线观看| 日本一二三不卡| 波多野结衣国产| 日韩女同互慰一区二区| av在线之家电影网站| 欧美一区二区三区免费视| 中文一区二区三区四区| 亚洲资源在线网| 天堂午夜影视日韩欧美一区二区| 老熟女高潮一区二区三区| 自拍偷拍国产亚洲| 一二三区在线播放| 这里只有精品在线观看| 欧美电影网站| 精品日本一区二区三区| 影音先锋一区| 18深夜在线观看免费视频| 中文字幕日韩精品一区| 波多野结衣一二区| 亚洲欧美在线一区| 日韩av影片| 九九九久久久| 99在线|亚洲一区二区| av天堂一区二区| 亚洲一级片在线观看| 国产jzjzjz丝袜老师水多| 日韩一区二区在线视频| 国产精品久久久久久妇女| 色综合电影网| 麻豆国产精品视频| 影音先锋男人看片资源| 欧美午夜电影一区| 国产裸舞福利在线视频合集| 国产精品精品视频| 日本久久精品| 色www免费视频| 中文字幕一区二区三中文字幕| 国产偷人爽久久久久久老妇app| 亚洲少妇激情视频| 电影久久久久久| 亚洲精品日韩在线观看| 久久99国产精品久久| 91人妻一区二区三区蜜臀| 91精品免费观看| 制服丝袜中文字幕在线| 亚洲影影院av| 国产精品xvideos88| a级一a一级在线观看| 色综合久久中文综合久久97| 东热在线免费视频| 91精品视频观看| 一区久久精品| 波多野结衣福利| 欧美三级午夜理伦三级中视频| 1pondo在线播放免费| 51国偷自产一区二区三区的来源| 欧美日韩综合| 欧美高清性xxxx| 欧美性猛交xxxx乱大交退制版| 麻豆网站在线看| 国产高清一区视频| 久久综合网络一区二区| 北条麻妃在线观看视频| 精品黑人一区二区三区久久| 松下纱荣子在线观看| 亚洲精品中字| 成人aa视频在线观看| a片在线免费观看| 日韩在线视频线视频免费网站| 日韩精品一区二区三区中文字幕| www.av片| 成人免费在线观看入口| 成人午夜免费福利| 国产精品精品一区二区三区午夜版 | 最新日韩免费视频| 精品黑人一区二区三区久久| aaa在线播放视频| 欧美高清视频不卡网| 欧美女同网站| 成人午夜激情网| 99精品国产一区二区青青牛奶| 自拍偷拍视频亚洲| 欧美tickling挠脚心丨vk| 美女福利一区二区| 屁屁影院ccyy国产第一页| 久久久国产精品午夜一区ai换脸| 国产福利第一视频| 国产成人精品一区二区| 国产尤物精品|