最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Java策略模式取代if else

 更新時間:2021年10月26日 14:39:34   作者:一月三千五  
在策略模式(Strategy Pattern)中,一個類的行為或其算法可以在運(yùn)行時更改。這種類型的設(shè)計模式屬于行為型模式。在策略模式中,我們創(chuàng)建表示各種策略的對象和一個行為隨著策略對象改變而改變的 context 對象。策略對象改變 context 對象的執(zhí)行算法

別再大量的if else了, 代碼太簡陋了, 可讀性太差了.

策略模式的定義

....

簡單來說 每個模塊相互獨(dú)立 互不影響 提高代碼的可擴(kuò)展性 !

舉栗子, 如下爛代碼

if ("花唄支付".equals(type)) {
 
	// 花唄支付的業(yè)務(wù)邏輯處理
 
} else if ("微信支付".equals(type)) {
 
	// 微信支付業(yè)務(wù)邏輯
 
} else if ("云閃付".equals(type)) {
 
	// 云閃付支付業(yè)務(wù)邏輯
 
} else if ("...".equals(type)) {
			
    // ....
}

思考: 可以定義一個支付接口, 支付方法, 不同的支付方式寫不同的實現(xiàn)類, 互不干擾, 互不影響, 以后添加新的支付方式, 只需添加新的實現(xiàn)類實現(xiàn)支付接口, 重寫他的支付方法即可, 無需改動之前寫的代碼.

正好今天敲代碼的時候 使用到了該設(shè)計模式, 簡單分享一下

定義接口

定義不同的實現(xiàn)類

每個實現(xiàn)類都會處理自己的業(yè)務(wù), 互不干擾, 相互隔離, 比如 如下兩個實現(xiàn)類 實現(xiàn)了相同接口處理不同的業(yè)務(wù)

定義接口

是不是比大量的if else 簡潔多了~

把每個不同的模塊抽取出來, 通過bean的名稱獲取接口的實現(xiàn)類, 執(zhí)行方法

到此這篇關(guān)于Java策略模式取代if else的文章就介紹到這了,更多相關(guān)Java 策略模式內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 使用JAR包中MANIFEST.MF的注意事項

    使用JAR包中MANIFEST.MF的注意事項

    這篇文章主要介紹了使用JAR包中MANIFEST.MF的注意事項,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-07-07
  • spring cloud feign不支持@RequestBody+ RequestMethod.GET報錯的解決方法

    spring cloud feign不支持@RequestBody+ RequestMethod.GET報錯的解決方法

    這篇文章主要介紹了spring cloud feign不支持@RequestBody+ RequestMethod.GET報錯的解決方法,需要的朋友可以參考下
    2018-01-01
  • 詳細(xì)解讀spring中的@Resource注解

    詳細(xì)解讀spring中的@Resource注解

    這篇文章主要介紹了詳細(xì)解讀spring中的@Resource注解,此注解來源于JSR規(guī)范(Java?Specification?Requests),其作用是找到依賴的組件注入到應(yīng)用來,它利用了JNDI技術(shù)查找所需的資源,需要的朋友可以參考下
    2023-10-10
  • Springboot 自定義校驗代碼實例

    Springboot 自定義校驗代碼實例

    這篇文章主要介紹了Springboot 自定義校驗代碼實例,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2019-11-11
  • java中BigDecimal進(jìn)行加減乘除的基本用法

    java中BigDecimal進(jìn)行加減乘除的基本用法

    大家應(yīng)該對于不需要任何準(zhǔn)確計算精度的數(shù)字可以直接使用float或double運(yùn)算,但是如果需要精確計算的結(jié)果,則必須使用BigDecimal類,而且使用BigDecimal類也可以進(jìn)行大數(shù)的操作。下面這篇文章就給大家介紹介紹關(guān)于java中BigDecimal進(jìn)行加減乘除的基本用法。
    2016-12-12
  • Spring?Boot條件注解之@ConditionalOnProperty完全解析

    Spring?Boot條件注解之@ConditionalOnProperty完全解析

    這篇文章主要介紹了SpringBoot中的@ConditionalOnProperty注解,通過配置文件屬性值控制Bean或配置類的加載,實現(xiàn)功能開關(guān)和環(huán)境配置,文中通過代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2025-02-02
  • java使用Graphics2D繪圖/畫圖方式

    java使用Graphics2D繪圖/畫圖方式

    這篇文章主要介紹了java使用Graphics2D繪圖/畫圖方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-11-11
  • Java日常練習(xí)題,每天進(jìn)步一點點(26)

    Java日常練習(xí)題,每天進(jìn)步一點點(26)

    下面小編就為大家?guī)硪黄狫ava基礎(chǔ)的幾道練習(xí)題(分享)。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧,希望可以幫到你
    2021-07-07
  • Jdbc連接數(shù)據(jù)庫基本步驟詳解

    Jdbc連接數(shù)據(jù)庫基本步驟詳解

    這篇文章主要為大家詳細(xì)介紹了Jdbc連接數(shù)據(jù)庫的基本步驟,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-10-10
  • Java實現(xiàn)動態(tài)代理

    Java實現(xiàn)動態(tài)代理

    本文給大家介紹的是java使用動態(tài)代理類實現(xiàn)動態(tài)代理的方法和示例,這里推薦給大家,有需要的小伙伴參考下吧
    2015-02-02

最新評論

济源市| 巨鹿县| 平凉市| 南部县| 灌南县| 衡南县| 深水埗区| 弥勒县| 永年县| 泰州市| 南雄市| 福贡县| 房产| 泽州县| 呼和浩特市| 巴青县| 资中县| 江达县| 绵阳市| 郁南县| 马山县| 临汾市| 萝北县| 左权县| 庆城县| 河间市| 浪卡子县| 定安县| 临海市| 石景山区| 嘉黎县| 定兴县| 扬中市| 岳西县| 保康县| 南涧| 华容县| 甘孜| 永泰县| 当涂县| 林口县|