Java策略模式取代if else
別再大量的if else了, 代碼太簡(jiǎn)陋了, 可讀性太差了.
策略模式的定義
....
簡(jiǎn)單來(lái)說(shuō) 每個(gè)模塊相互獨(dú)立 互不影響 提高代碼的可擴(kuò)展性 !
舉栗子, 如下?tīng)€代碼
if ("花唄支付".equals(type)) { // 花唄支付的業(yè)務(wù)邏輯處理 } else if ("微信支付".equals(type)) { // 微信支付業(yè)務(wù)邏輯 } else if ("云閃付".equals(type)) { // 云閃付支付業(yè)務(wù)邏輯 } else if ("...".equals(type)) { // .... }
思考: 可以定義一個(gè)支付接口, 支付方法, 不同的支付方式寫(xiě)不同的實(shí)現(xiàn)類(lèi), 互不干擾, 互不影響, 以后添加新的支付方式, 只需添加新的實(shí)現(xiàn)類(lèi)實(shí)現(xiàn)支付接口, 重寫(xiě)他的支付方法即可, 無(wú)需改動(dòng)之前寫(xiě)的代碼.
正好今天敲代碼的時(shí)候 使用到了該設(shè)計(jì)模式, 簡(jiǎn)單分享一下
定義接口
定義不同的實(shí)現(xiàn)類(lèi)
每個(gè)實(shí)現(xiàn)類(lèi)都會(huì)處理自己的業(yè)務(wù), 互不干擾, 相互隔離, 比如 如下兩個(gè)實(shí)現(xiàn)類(lèi) 實(shí)現(xiàn)了相同接口處理不同的業(yè)務(wù)
定義接口
是不是比大量的if else 簡(jiǎn)潔多了~
把每個(gè)不同的模塊抽取出來(lái), 通過(guò)bean的名稱(chēng)獲取接口的實(shí)現(xiàn)類(lèi), 執(zhí)行方法
到此這篇關(guān)于Java策略模式取代if else的文章就介紹到這了,更多相關(guān)Java 策略模式內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Java如何把int類(lèi)型轉(zhuǎn)換成byte
這篇文章主要介紹了Java如何把int類(lèi)型轉(zhuǎn)換成byte,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-02-02Mybatis和Mybatis-Plus時(shí)間范圍查詢方式
這篇文章主要介紹了Mybatis和Mybatis-Plus時(shí)間范圍查詢方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-08-08關(guān)于MyBatis10種超好用的寫(xiě)法(收藏)
這篇文章主要介紹了關(guān)于MyBatis10種超好用的寫(xiě)法(收藏),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-08-08java抓取鼠標(biāo)事件和鼠標(biāo)滾輪事件示例
這篇文章主要介紹了java抓取鼠標(biāo)事件和鼠標(biāo)滾輪事件示例,需要的朋友可以參考下2014-05-05java的Map集合中按value值進(jìn)行排序輸出的實(shí)例代碼
下面小編就為大家?guī)?lái)一篇java的Map集合中按value值進(jìn)行排序輸出的實(shí)例代碼。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2016-08-08Eclipse中實(shí)現(xiàn)JS代碼提示功能(圖文教程)
本文通過(guò)圖文并茂的形式給大家介紹了Eclipse中實(shí)現(xiàn)JS代碼提示功能,非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友參考下吧2017-11-11Spring中的之啟動(dòng)過(guò)程obtainFreshBeanFactory詳解
這篇文章主要介紹了Spring中的之啟動(dòng)過(guò)程obtainFreshBeanFactory詳解,在refresh時(shí),prepareRefresh后,馬上就調(diào)用了obtainFreshBeanFactory創(chuàng)建beanFactory以及掃描bean信息(beanDefinition),并通過(guò)BeanDefinitionRegistry注冊(cè)到容器中,需要的朋友可以參考下2024-02-02Spring框架事務(wù)屬性中事務(wù)隔離級(jí)別與傳播行為全面講解
這篇文章主要介紹了Spring框架聲明式事務(wù)的事務(wù)隔離級(jí)別和事務(wù)傳播行為,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)吧2022-11-11