Java設(shè)計(jì)模式之狀態(tài)模式
這期分享一個(gè)行為模式中的狀態(tài)模式,狀態(tài)模式是行為模式中的最后幾個(gè)模式了抬伺。希望多多關(guān)注交流螟够。
簡(jiǎn)介
一個(gè)對(duì)象中在狀態(tài)改變的時(shí)候允許改變其行為,讓對(duì)象表現(xiàn)出改變行為的現(xiàn)象峡钓。
上下文(Context)——定義客戶端需要的接口,維護(hù)一個(gè)具體狀態(tài)的對(duì)象
狀態(tài)接口(State)——定義一個(gè)封裝了Context的特定行為接口
具體狀態(tài)(ConcreteState)——實(shí)現(xiàn)狀態(tài)接口的方法
應(yīng)用場(chǎng)景
- 對(duì)象依賴于狀態(tài)來(lái)決定處理邏輯
- 在運(yùn)行時(shí)需要?jiǎng)討B(tài)決定執(zhí)行邏輯
實(shí)例
定義通用的結(jié)構(gòu)
輸出
總結(jié)
該模式主要解決問(wèn)題是條件表達(dá)式過(guò)于復(fù)雜的場(chǎng)景若河,我們通過(guò)狀態(tài)的控制轉(zhuǎn)移到狀態(tài)的各個(gè)實(shí)現(xiàn)類中能岩。這樣可以簡(jiǎn)化實(shí)現(xiàn)邏輯,解耦狀態(tài)與上下文的之間的關(guān)系萧福。