項(xiàng)目中通常用到if判斷,但有時(shí)候?yàn)榱藬U(kuò)展的需要,不想過(guò)多的寫(xiě)if,else語(yǔ)句,這時(shí)候首先想到的就是使用策略模式。
策略模式(Strategy Pattern):定義一系列算法,將每一個(gè)算法封裝起來(lái),并讓它們可以相互替換。策略模式讓算法獨(dú)立于使用它的客戶(hù)而變化,也稱(chēng)為政策模式(Policy)。
Context: 環(huán)境類(lèi)
Strategy: 抽象策略類(lèi)
ConcreteStrategy: 具體策略類(lèi)

時(shí)序圖:

通過(guò)圖可以看到有一個(gè)接口,不同的情況下使用不同的實(shí)現(xiàn)類(lèi)的計(jì)算邏輯。
項(xiàng)目中通常根據(jù)不同的事件,類(lèi)型,走不同的業(yè)務(wù)邏輯。
那么在spring boot中怎么使用呢。舉個(gè)簡(jiǎn)單的例子:
1.定義接口

2.編寫(xiě)實(shí)現(xiàn)類(lèi),子類(lèi)的代碼基本都是根據(jù)自己的業(yè)務(wù)做好實(shí)現(xiàn)就行,大致的代碼如下:

3.編寫(xiě)Myconfig.java,做好類(lèi)型和子類(lèi)的對(duì)應(yīng)關(guān)系

4.使用的時(shí)候在類(lèi)中引入,然后根據(jù)類(lèi)型開(kāi)始調(diào)用

5.根據(jù)類(lèi)型查找對(duì)應(yīng)的實(shí)現(xiàn)類(lèi),減少if語(yǔ)句,同時(shí)也方便擴(kuò)展新的類(lèi)型,減少了代碼耦合

---------------------------
如果對(duì)您有幫助,記得雙擊么么噠!
--------------------------