策略模式的使用場景

2021-10-05 04:25:09 字數 575 閱讀 2107

當程式**現一堆連在一起的if…else語句,例如:

public void t()else if(b)else if(c)else

...}

此時對於這一對if…else語句,每個條件a,b,c…可能會很複雜,維護起來也很難,尤其後續新增加不同情況的操作,還需要新增加if…else,耦合度太高。

故此時可以使用策略模式來將這些複雜的邏輯判斷分成乙個個單獨的類,實現同乙個介面或者繼承於同乙個父類。之後通過工廠模式來產生需要的物件來執行目標方法。

比如,對於上邊複雜的判斷可以簡化為:

abstract class iparent

class a entends iparent

public void doaction()

}class b extends iparent

class c extends iparent

class factory

public static iparent createobj()

ok,就是這麼簡單,相信學會這個之後,所有人都會喜歡上用策略模式。

策略模式的應用場景

策略模式的主要目的是將行為與具體的演算法或者實現進行分開。如 條條大路通羅馬。採取不同的路線或者出行方式雖然會出現不同的演算法或實現,但是其最終行為都是去往羅馬。其基本實現如下 宣告使用的演算法介面,不同的演算法通過實現此介面。type transportation inte ce type pla...

Git使用場景 命令使用場景

通過個人使用git時候的遇到的使用場景,熟悉了解相關命令,也記錄一下場景的使用方法。所有場景均在ubuntu16.04 linux 作業系統下,其他作業系統有差異的地方自行查閱相關資料。安裝git sudo apt get install git設定及檢視git配置 user.name和user.e...

原型模式的使用場景

1 類初始化需要消化非常多的資源,這個資源包括資料 硬體資源等,通過原型拷貝避免這些消耗。2 通過new乙個物件需要非常繁瑣的資料準備或訪問許可權,可以使用原型模式。3 乙個物件需要提供給其他物件訪問,而且各個呼叫者可能需要修改其值,可以考慮使用原型模式拷貝多個物件供呼叫者使用,即保護性拷貝 注 通...