工廠模式 + 策略模式

  • 扣款策略接口 Deduction
    exec 執(zhí)行本策略

  • 扣款策略1 implements 扣款策略接口
    實(shí)現(xiàn)exec策略邏輯

  • 扣款策略2 implements 扣款策略接口

  • 扣款策略執(zhí)行器
    構(gòu)造函數(shù)傳入Deduction接口
    exec:調(diào)用 deduction.exec

  • 策略枚舉:外部傳枚舉值,找到對(duì)應(yīng)的策略實(shí)現(xiàn)子類

  • 工廠類 StrategyFactory
    getDeduction:接受枚舉參數(shù),通過枚舉里的子類名屬性,反射實(shí)例化子類

deduction = StrategyFactory.getDeduction(enum); // 通過枚舉類獲取對(duì)應(yīng)的策略子類
context = new Context(deduction);
context.exec(); // 執(zhí)行策略 

總結(jié)

策略模式封裝了容易變化的邏輯部分,自由切換應(yīng)對(duì)不同場(chǎng)景,而且擴(kuò)展性好。

工廠模式

  • 避免策略實(shí)現(xiàn)子類對(duì)外直接暴露,因?yàn)橥獠空{(diào)用策略是直接依賴實(shí)現(xiàn)子類傳遞給context的
  • 外部通過傳遞一個(gè)類似枚舉,作為映射到策略子類的key,剩下的實(shí)例化交給工廠類來做
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 136,596評(píng)論 19 139
  • 1 場(chǎng)景問題# 1.1 導(dǎo)出數(shù)據(jù)的應(yīng)用框架## 考慮這樣一個(gè)實(shí)際應(yīng)用:實(shí)現(xiàn)一個(gè)導(dǎo)出數(shù)據(jù)的應(yīng)用框架,來讓客戶選擇數(shù)據(jù)...
    七寸知架構(gòu)閱讀 7,016評(píng)論 6 75
  • 1 場(chǎng)景問題# 1.1 選擇組裝電腦的配件## 舉個(gè)生活中常見的例子——組裝電腦,我們?cè)诮M裝電腦的時(shí)候,通常需要選...
    七寸知架構(gòu)閱讀 4,540評(píng)論 6 67
  • 我不知道你是否聽過“魷魚之鄉(xiāng)”這個(gè)稱呼。 攤開舟山市的地圖,在本島的下方位置,有一個(gè)狹長(zhǎng)的小島, 它的邊岸曲折,頗...
    問見海小鮮閱讀 297評(píng)論 0 0
  • 大千世界, 我無處容身。 天地雖寬, 我的心卻沒有一席之地。 走進(jìn)高高的樓房, 跨進(jìn)華麗的廳堂。 我的心卻似漂浮一...
    卓貴玲閱讀 348評(píng)論 0 2

友情鏈接更多精彩內(nèi)容