我們使用了一個狀態機框架(基於狀態模式),它不暴露它的當前狀態,這有時意味着我必須以迂迴的方式來做事情。狀態機是否需要公開其當前狀態?
當我質疑這個設計決定時,其中一個理由是「如果您需要知道當前狀態,那麼您錯誤地使用了它」。
這是正確的嗎?我並不是國家機器專家。
(我問這裏是因爲我知道我有一個固有的偏見對狀態模式,我覺得這太冗長。)
例
想象一下,一個系統中的一個它表示讀取兩個傳感器。一個傳感器給出一個數值,另一個傳感器給出一個布爾值,告訴你第一個是否'可靠'。系統根據最近的良好值輸出一個值,該值可以是當前的「良好」值,也可以是插值(或其他奇特計算)。
我的想法是有兩個子狀態 - 一個「好」,另一個「不」。當一個新的值到達時,我想問狀態機是哪個狀態,以便我知道如何處理插值。
(我想我已經回答了我的問題:該解決方案是在狀態機NewDataValue(val)
事件,這將只轉發從「好」的狀態值?)
+1我得說我開悟了! – Nilesh 2011-03-23 07:12:14
我有一個例子(見我更新的問題),但我想我已經自己回答了:) – Benjol 2011-03-23 08:39:48