模式中的角色:
state:抽象狀態角色
concretestate:具體狀態角色
context:環境角色
狀態模式通用類圖如下
具體的類圖如下
**實現如下:
package state2;
/** * context類,維護乙個concretestate子類的例項,這個例項定義當前的狀態。
* */
public class context
public state getstate()
public void setstate(state state)
/*** 對請求做處理,並設定下乙個狀態
*/public void request()
}
package state2;
/** * 抽象狀態類,定義乙個介面以封裝與context的乙個特定狀態相關的行為
* */
public abstract class state
package state2;
/** * 具體狀態類,每乙個子類實現乙個與context的乙個狀態相關的行為
* */
public class concretestatea extends state
}
package state2;
/** * 具體狀態類,每乙個子類實現乙個與context的乙個狀態相關的行為
*/public class concretestateb extends state
}
客戶端呼叫:
package state2;
public class client
}
設計模式學習筆記 狀態模式
定義 當乙個物件內在的狀態改變時,允許其改變行為,這個物件看起來像是改變了其類。狀態模式不太好理解,我現在還沒有完全理解,這個模式給我的第一印象就是比較亂,給我的感覺好像是兩個類互相依賴,呼叫 的方法,呼叫 的方法,弄的好亂,所以這個狀態模式就不用通用類圖去描述了,那樣會不知所云,還是舉乙個實際的例...
設計模式學習筆記 狀態模式
1.概述 當乙個物件的內在狀態改變時允許改變其行為,這個物件看起來像是改變了其類。2.解決的問題 主要解決的是當控制乙個物件狀態轉換的條件表示式過於複雜時的情況。把狀態的判斷邏輯轉移到表示不同的一系列類當中,可以把複雜的邏輯判斷簡單化。3.模式中的角色 3.1 上下文環境 context 它定義了客...
設計模式學習筆記 狀態模式
1.概述 當乙個物件的內在狀態改變時允許改變其行為,這個物件看起來像是改變了其類。2.解決的問題 主要解決的是當控制乙個物件狀態轉換的條件表示式過於複雜時的情況。把狀態的判斷邏輯轉移到表示不同的一系列類當中,可以把複雜的邏輯判斷簡單化。3.模式中的角色 3.1 上下文環境 context 它定義了客...