天天看點

設計模式(8)-狀态模式(關注狀态之間的變化)

<b>狀态模式</b>(State Pattern)是設計模式的一種,屬于行為模式。

  <b>定義</b>(源于Design Pattern):當一個對象的内在狀态改變時允許改變其行為,這個對象看起來像是改變了其類。

  狀态模式主要解決的是當控制一個對象狀态的條件表達式過于複雜時的情況。把狀态的判斷邏輯轉移到表示不同狀态的一系列類中,可以把複雜的判斷邏輯簡化。

  <b>意圖</b>:允許一個對象在其内部狀态改變時改變它的行為

  <b>适用場景:</b>

  1.一個對象的行為取決于它的狀态,并且它必須在運作時刻根據狀态改變它的行為。

  2.一個操作中含有龐大的多分支結構,并且這些分支決定于對象的狀态。

<b>類圖結構:</b>

<b></b>

設計模式(8)-狀态模式(關注狀态之間的變化)

這樣的話讓程式更加面向對象

狀态模式的好處是将與特定狀态相關的行為局部化,并且将不同的狀态行為分割開來。

 目的就是消除龐大的分支語句,狀态模式通過把各種狀态轉移邏輯分布到state的子類之間,

 來減少互相間的依賴。

 什麼時候使用?

 當一個對象的行為取決于它的狀态,并且它必須在運作時根據狀态改變它的行為時,就可以

 考慮狀态模式。

參考代碼如下:

對于狀态頻繁變更需要考慮狀态模式。

繼續閱讀