狀態模式 允許對象在內部狀態改變時改變它的行為,對象看起來好像修改了它的類。 狀態模式所涉及到的角色有: 環境(Context)角色,也成上下文:定義客戶端所感興趣的介面,並且保留一個具體狀態類的實例。這個具體狀態類的實例給出此環境對象的現有狀態。 抽象狀態(State)角色:定義一個介面,用以封裝 ...
狀態模式 允許對象在內部狀態改變時改變它的行為,對象看起來好像修改了它的類。
狀態模式所涉及到的角色有:
環境(Context)角色,也成上下文:定義客戶端所感興趣的介面,並且保留一個具體狀態類的實例。這個具體狀態類的實例給出此環境對象的現有狀態。
抽象狀態(State)角色:定義一個介面,用以封裝環境(Context)對象的一個特定的狀態所對應的行為。
具體狀態(ConcreteState)角色:每一個具體狀態類都實現了環境(Context)的一個狀態所對應的行為。
適用場景:
1.一個對象的行為取決於它的狀態,並且它必須在運行時刻根據狀態改變它的行為。
2.一個操作中含有龐大的多分支結構,並且這些分支決定於對象的狀態。