if else 優化之 策略模式

2021-10-24 15:11:27 字數 1583 閱讀 5858

在策略模式(strategy pattern)中,乙個類的行為或其演算法可以在執行時更改。這種型別的設計模式屬於行為型模式。

在策略模式中,我們建立表示各種策略的物件和乙個行為隨著策略物件改變而改變的 context 物件。策略物件改變 context 物件的執行演算法。

業務處理主服務類

@service

public

class

strategymode

public string getcheckresultsuper

(string order)

return

"不在處理的業務範圍你之內";

}}

派生處理業務(可以寫介面)

/**

* @classname iderive

* @description 派生處理的業務邏輯

* @author xiongchao

* @date 2020/6/24 14:51

**/public

inte***ce

iderive

實現類,進行對應的業務邏輯處理

@service

public

class

deriveimpl

implements

iderive

@override

public string part2

(string order)

@override

public string part3

(string order)

@override

public string part4

(string order)

@override

public string part5

(string order)

}

方法二 (多工處理最佳)

公共介面定義

/**

* @classname intefacehome

* @description 介面定義 根據匹配的類名 去呼叫對應的 邏輯**處理 策略模式

* @author xiongchao

* @date 2020/6/24 15:24

**/public

inte***ce

intefacehome

方法的呼叫

/**

* @classname mulitipart

* @description todo

* @author xiongchao

* @date 2020/6/24 15:28

**/public

class

mulitipart

implements

intefacehome

@override

public string exucet

(object obj)

}

策略模式優化大量if else

在 編寫的個過程中難免會碰到使用到if else的情況,太多的if else會使 變的臃腫並且難以理解,然後想到了之前寫策略模式是可以對它進行優化的,的規範和易懂性我認為對乙個優秀程式設計師來說是必要的。平常經常碰到的 author cjd description 使用if.else臃腫的 retu...

策略模式 工廠模式優化if else

2.優化if else 思路描述 構建支付型別業務處理介面,不同的支付型別實現該介面並重寫介面方法實現支付型別的具體處理邏輯 構建支付型別工廠,根據對應支付型別獲取支付型別業務處理介面實現類.2.1構建支付型別介面 public inte ce paytypehandleservice2.2 根據不...

js利用策略模式優化if else迴圈

js程式中最常用的if else迴圈,如果分枝很多的的情況下難免使寫出的程式又臭又長,但是根據需求又必須將這些分支處理,此時稍有經驗的程式設計師可能會想到用switch case優化但是只是僅僅做到利於閱讀,最好的方法是用策略模式進行優化。例如 有五個物件 obj1 obj5 然後需要判斷每個物件的...