模板模式+策略模式

????????相信好多碼農(nóng)都知道java設(shè)計(jì)模式是什么吧,這里我就不多一一列舉,我是最近有些需求開發(fā),涉及到一些可復(fù)用的代碼開發(fā),就用一下模板模式和策略模式。通俗理解一下,模板模式就是共用抽象類的有一個(gè)模板方法大家都用得上,然后外加一個(gè)修飾方法,然后子類實(shí)現(xiàn)類可以自行重寫該修飾方法。但是呢,因?yàn)樯婕暗讲煌瑘?chǎng)景,此時(shí)可以加入一個(gè)策略模式,根據(jù)不同場(chǎng)景采用不同的策略來重寫該修飾方法。這樣封裝共用方法是不是一下子高大上起來了,然后把java的多態(tài)性使用的淋漓盡致了吧,代碼塊解耦也方便后期代碼的擴(kuò)展嘛不是?

? ? ? ? 廢話說了這么多,也應(yīng)該上點(diǎn)干貨嘛,看看我寫了什么東東。

一、模板模式


模板類

????????前提場(chǎng)景是不同流程結(jié)束后觸發(fā)該關(guān)愛基金解約,因此我寫了模板類,用共同的模板方法封裝關(guān)愛基金的參數(shù)。


模板的修飾方法重寫

????????因?yàn)橛懈鶕?jù)場(chǎng)景不同設(shè)置不同時(shí)間參數(shù)的,所以要重寫一個(gè)修飾方法來封裝,這里寫了個(gè)子類,然后根據(jù)不同場(chǎng)景,加入不同參數(shù)封裝策略。

二、策略模式


場(chǎng)景設(shè)置類


策略接口


具體策略實(shí)現(xiàn)類

? ? ? ? ? ?根據(jù)不同場(chǎng)景去set不同的策略參數(shù),然后調(diào)用具體策略里的方法進(jìn)行參數(shù)封裝。


具體調(diào)用

? ? ? ? 注意:如果使用new方法來實(shí)例化接口,記得接口實(shí)現(xiàn)類不能用autowired引入bean,否則是會(huì)空指針。

? ? ? ? 總結(jié),模板模式+策略模式,中間其實(shí)也算加上了修飾模式,讓代碼更優(yōu)雅,擴(kuò)展代碼塊解耦。

最后編輯于
?著作權(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)容

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