(十一)狀態模式

2021-10-02 21:46:56 字數 721 閱讀 5683

在業務中,常常有那種狀態巨多的東西,比如乙個立項,可能有新建、已提交、已審批等多種狀態

乙個活動可能有新建、已提交、審核通過、執行中、結束等多種狀態

因此,這個設計模式,指的是面向乙個立項、乙個訂單這個"物件"的邏輯

public

inte***ce

state

public

class

newstate

implements

state

}public

class

implements

state

}public

class

implements

state

}public

class

finishstate

implements

state

}

然後將狀態的流轉和下一步操作都抽出來到上下文類中統一管理,流轉

public

class

context

public

void

execute

(int statetype)

else

if(statetype ==2)

else

if(statetype ==3)

}}

設計模式 十一 狀態模式

狀態模式 state 當乙個物件的內在狀態改變時允許改變其行為,這個物件看起來像是改變了其類。狀態模式主要解決的是當控制乙個物件狀態轉換的條件表示式過於複雜時的情況,把狀態的判斷邏輯轉移到表示不同狀態的一系列類當中,可以把複雜的判斷邏輯化。狀態抽象類,定義乙個介面以及封裝與context 的乙個特定...

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

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

PHP設計模式系列(十一) 狀態模式

狀態模式 state pattern 允許乙個物件在其內部狀態改變時改變它的行為,物件看起來似乎修改了它的類。其別名為狀態物件 objects for states 狀態模式是一種物件行為型模式。狀態模式包含如下角色 狀態模式 state 抽象狀態類 abstract class state con...