天天看點

狀态模式(State Pattern)——事物狀态

前言

​ 前陣子被大師帶着寫界面,還裝逼學了一下react(這裡是我的react部落格)。在傳統的開發中,通常 UI 上諸多狀态變化會讓維護應用的狀态變得很困難和複雜。React 通過檢測狀态變化來每次重新渲染虛拟 DOM 節點,然後按需自動更新真實節點,這種方式可以讓開發人員可以簡單地專注在應用的狀态上。

​ 在react中,資料控制UI,資料變化其實可以看做變量狀态的改變。這就引出了我們今天要講的狀态模式。

概念

​ 狀态模式(State Pattern)允許對象在内部狀态改變它的行為,對象看起來好像修改而它的類。

​ 在很多情況下,一個對象的行為取決于它的一個或多個變化的屬性,這些屬性我們稱之為狀态,這個對象稱之為狀态對象。對于狀态對象而已,它的行為依賴于它的狀态,比如你要預訂房間,那麼隻有當該房間為空閑時你才能預訂,你想入住該房間也隻有當你預訂了該房間或者該房間為空閑時。對于這樣的一個對象,當它在于外部事件産生互動的時候,其内部狀态就會發生改變,進而使得他的行為也随之發生改變。

類圖

狀态模式(State Pattern)——事物狀态

模式實作

周一補上

總結

  • 狀态模式允許一個對象基于内部狀而擁有不同的行為。
  • 和程式專題該機不用,狀态模式用類代表狀态。
  • Context會将行為委托給目前狀态對象。
  • 通過将每個狀态封裝進一個類,我們把以後需要做的任何改變局部化了。
  • 狀态模式和政策模式有相同的類圖,但是他們的意圖不同。
  • 狀态模式允許Context随着狀态的改變而改變行為。
  • 狀态裝換可以有State類或Context類控制。
  • 使用狀态模式通常會導緻設計中類的數目大量增加。
  • 狀态類可以被多個Context執行個體共享。

繼續閱讀