設計模式從入門到放棄 二十一 策略模式

2021-10-06 03:47:16 字數 1079 閱讀 9019

策略模式 strategy pattern 屬於行為型設計模式,將呼叫演算法和演算法本身分離解耦,讓乙個類的行為或者演算法可以執行的時候更改。具體的使用類只需要組合演算法的介面,演算法的具體實現留給子類實現,然後具體使用哪種演算法可以動態的指定。

context 上下文物件 演算法具體的使用者 組合演算法介面

strategya strategyb 不同的演算法介面

concretestrateg*** 具體的演算法實現

有乙個傳入2個數根據傳入的加減乘除的策略不同進行不同的運算

// 乙個抽象策略介面

public

inte***ce

strategy

// 加法策略

public

class

addstrategy

implements

strategy

}// 減法策略

public

class

substrategy

implements

strategy

}// 乘法策略

public

class

multiplestrategy

implements

strategy

}

// context 上下文類 核心類

public

class

binumberoperation

//可以動態設定策略

public

void

setstrategy

(strategy strategy)

public strategy getstrategy()

public

intoperation

(int a,

int b)

return0;

}}

// 測試類

public

class

strategytest

}

設計模式從入門到放棄 二十 狀態模式

狀態模式 state pattern 屬於行為模式,主要用來解決物件在多狀態切換時,需要對外輸出不同行為的問題。狀態和行為一一對應,狀態之間可以相互轉換。使用場景在於 中有大量對物件狀態相關的判斷的條件語句的時候較為適合。context 上下文物件 用於維護state的例項 維護當前的狀態 stat...

設計模式(二十一) 狀態模式

狀態模式也是一種行為型模式,當我們的程式中需要一些狀態轉換,對於不同的狀態需要不同的行為時,我們就可以考慮使用狀態模式。下面用交通燈來當例子。我們需要紅黃綠三種顏色的狀態。inte ce state class redstate implements state class yellowstate ...

設計模式(二十一) 狀態模式

狀態模式也是一種行為型模式,當我們的程式中需要一些狀態轉換,對於不同的狀態需要不同的行為時,我們就可以考慮使用狀態模式。下面用交通燈來當例子。我們需要紅黃綠三種顏色的狀態。inte ce state class redstate implements state class yellowstate ...