Java策略模式取代if else
別再大量的if else了, 代碼太簡陋了, 可讀性太差了.
策略模式的定義
....
簡單來說 每個模塊相互獨立 互不影響 提高代碼的可擴展性 !
舉栗子, 如下爛代碼
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)文章
spring cloud feign不支持@RequestBody+ RequestMethod.GET報錯的解決方法
這篇文章主要介紹了spring cloud feign不支持@RequestBody+ RequestMethod.GET報錯的解決方法,需要的朋友可以參考下2018-01-01
Spring?Boot條件注解之@ConditionalOnProperty完全解析
這篇文章主要介紹了SpringBoot中的@ConditionalOnProperty注解,通過配置文件屬性值控制Bean或配置類的加載,實現(xiàn)功能開關(guān)和環(huán)境配置,文中通過代碼介紹的非常詳細(xì),需要的朋友可以參考下2025-02-02

