java狀態模式

2021-08-25 20:51:55 字數 1198 閱讀 8035

參考:

狀態模式:當乙個物件的內在狀態改變時允許改變其行為,這個物件看起來像是改變了其類。

使用前提:狀態模式主要解決的是當控制乙個物件狀態轉換的條件表示式過於複雜時的情況。把狀態的判斷邏輯轉移到表示不同狀態的一系列類當中,可以把複雜的判斷邏輯簡化。

使用好處:將與特定狀態相關的行為區域性化,並且將不同狀態的行為分割開來,就是將特定的狀態相關的行為都放入乙個物件中,由於所有與狀態相關的**都存在於某個state的繼承類中,所以通過定義新的子類可以很容易地增加新的狀態與轉換。這樣做目的就是為了消除龐大的條件分支語句。大的分支判斷會使得它們難以修改和拓展,狀態模式通過把各種狀態轉移邏輯分布到state的子類之間,來減少相互間的依賴。當乙個物件的行為取決於它的狀態,擯棄它必須在執行時刻根據狀態改變它的行為時,就可以考慮使用狀態模式了。

例項**一:

inte***ce state //正常: public class normalstate implements state } //不正常 public class nonormalstate implements state } //超常: public class superstate implements state } //這個時候我們來乙個環境,乙個運動員,正常情況下是正常狀態 public class player public void shot() } //測試這個例子 public class statetest }

例項**二:

public abstract class state public class forenoonstate extends stateelse } } //中午工作狀態 public class noonstate extends stateelse } } public class afternoonstate extends state } } //工作 public class work public void setfinish(boolean finish) public double gethour() public void sethour(double hour) private state current; public work() private double hour; private boolean finish = false; public void setstate(state s) public void writeprogram() } public class teststate }

java狀態模式

參考 狀態模式 當乙個物件的內在狀態改變時允許改變其行為,這個物件看起來像是改變了其類。使用前提 狀態模式主要解決的是當控制乙個物件狀態轉換的條件表示式過於複雜時的情況。把狀態的判斷邏輯轉移到表示不同狀態的一系列類當中,可以把複雜的判斷邏輯簡化。使用好處 將與特定狀態相關的行為區域性化,並且將不同狀...

Java設計模式 狀態模式

目錄 定義如下 個人理解 通用類圖 角色介紹 state 抽象狀態角色 concretestate 具體狀態角色 context 環境角色 通用源 場景類 狀態模式的優點 狀態模式的缺點 使用場景 狀態模式又是乙個比較難的設計模式 當乙個物件內在狀態改變時允許其改變行為,這個物件看起來像改變了其類。...

設計模式 狀態模式 Java

狀態模式 state 當乙個物件的內在狀態改變時允許改變其行為。這個物件看上去就像是改變了它的類一樣。狀態模式主要解決的是當控制乙個物件狀態轉換的條件表示式過於複雜時的情況。把狀態的判斷邏輯轉移到表示不同狀態的一系列類當中,可以把複雜的判斷邏輯簡化。狀態模式的好處 將與特定狀態相關的行為區域性化,並...