設計模式 行為型設計模式 5 狀態模式(php)

2021-10-10 09:32:34 字數 595 閱讀 3585

行為型設計模式

狀態模式

狀態模式(state pattern)屬於行為型模式之一,它允許乙個物件在其內部狀態發生改變時而改變它的行為,看起來像修改了它的類。

1、context環境類角色

定義了客戶感興趣的訪問介面;維護concretestate子類的例項;並且定義當前相關的狀態;

2、抽象狀態類角色

定義了狀態類特性的行為介面

3、concretestate具體狀態類角色

每乙個子類實現了乙個與context的狀態相關的行為

1、物件的行為隨著狀態的改變而發生變化

2、條件、分之語句的替代者

1、將不同的狀態拆分出來,符合開放封閉原則

2、可替換條件判斷語句,**易於閱讀

3、可動態的增加新的狀態,每種狀態只負責自己的業務,符合單一職責原則

4、通過狀態模式共享乙個狀態,減少維護狀態的**複雜度

1、設計之初要對狀態有明確的分類和抽象,否則在增加新的狀態時,狀態和結構將變得更加複雜,且有可能破壞開放封閉原則

設計模式 行為型 狀態模式

設計模式行為型 1.觀察者模式 2.模板模式 3.策略模式 4.職責鏈模式 5.狀態模式 6.迭代器模式 7.訪問者模式 8.備忘錄模式 9.命令模式 10.直譯器模式 11.中介模式 對有狀態的物件,把複雜的 判斷邏輯 提取到不同的狀態物件中,允許狀態物件在其內部狀態發生改變時改變其行為。環境類 ...

Java設計模式 行為型 狀態模式

身為億億萬萬勞苦大眾的一員,每天可以做的基本上就兩件事,一件就是太累休息一會,另一件就是為了養家拼命的工作。什麼情況下應當休息,什麼情況下應當工作。答案很簡單,要看上班還是下班了。千千萬的勞苦大眾 public class person 應當休息還是工作,看下現在的狀態 public void re...

設計模式之狀態模式 行為型

乙個物件在其內部狀態改變時改變其行為,這個物件我們可以稱為狀態物件,所以狀態模式是一種物件行為型模式。上下文類 public class context public void setstate state state public state getstate 抽象狀態類 public abstr...