《遊戲編程模式》讀書筆記之二 - 狀態模式

有限狀態機FSM

  • 多個狀態
  • 輸入事件、狀態轉移

分層狀態機HFSM

 

狀態模式(更好的實現狀態機)

  • 定義狀態接口或抽象類,爲每一個狀態定義類
  • 進行狀態委託
  • 入口行爲、出口行爲
  • 對於HFSM,可用子類繼承父類,父類和子類各爲一層

有限狀態機和狀態模式的區別

在CSDN論壇的一個帖子講:有限狀態機與狀態模式的區別
看到閻宏的跟帖,說的很貼切,畢竟大神級人物
 
後來又看到另外一篇帖子:你們以爲閻宏的《java與模式》寫的怎麼樣
http://bbs.csdn.net/topics/30394369,跟帖很精彩,感受程序員的世界就應該是一個武林,天下風雲出我輩
 
(1)「大可能是狀況下,狀態實例沒有其它數據字段,應當使用單例模式」,這是錯誤的,單例模式不是幹這個的。
  • 複雜一點的狀態都有繼承機構,單例不適合繼承
  • 應當使用不變模式(來自於java與模式一書)

(2)狀態機比狀態模式普遍
  • 狀態模式是對象的行爲描述,接收狀態的轉換
  • 狀態機着重於定義狀態轉換,一個狀態機的實現可能使用多個設計模式,狀態模式只是之一
相關文章
相關標籤/搜索