策略模式 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 ...