是否可以通過應用狀態機模式來改進所有代碼?有限狀態機模式 - 唯一真實模式?
我當時正在研究一個可怕的,越野車,破碎的意大利麪代碼。 我抄錄了Martin Fowler's example State Machine code from this blog,並將整個垃圾堆變成了一系列的陳述。從字面上看,只是一個州,事件,轉換和命令的列表。
我不敢相信這個轉變。代碼現在是乾淨的,並且可以工作。當然,我之前已經知道了狀態機,甚至已經實現了它們,但是在Martin Fowler的例子中,模型/配置的分離是驚人的。
這讓我覺得,我做過的幾乎所有事情都可以從這種方法中獲益。我希望使用每種語言的這種功能。 也許這應該是一個語言級別的功能。
任何人都認爲這是錯的? 或者任何人有不同的模式有類似的經驗?
我喜歡狀態機,很多嵌入式編程問題..我發現當特殊情況,需求發生變化時,模式往往會發生爆炸(狀態的巨大增加)或崩潰(違反模式的人)。進入圖片,特別是當經驗較少/有能力的開發人員進行更改時。某些情況(例如動態指定的重試次數)需要小心在FSM中正確實施。 – Splat 2011-02-20 17:19:13
提防金錘反模式! http://sourcemaking.com/antipatterns/golden-hammer – swinefeaster 2012-11-05 21:53:48