2011-10-08 156 views
1

我有一個XML文件,並且想要表示在c#數據結構中的XML文件中描述的複雜有限狀態機。我可以使用什麼數據結構?一個州的定義是here。狀態機根據各種異步事件顯示同步和異步轉換和操作。保存大量狀態機信息的數據結構

回答

1

您應該先看看State Design Pattern如何幫助您。

您有需要

如果你的狀態的實例是預創建兩件事情。

  1. 那些國家,你可以反序列化到XML的內部表示。這將是一系列表示XML結構的類。

  2. 由於每個狀態似乎都有一個ID,並且您使用此ID轉換到目標狀態,因此可以將狀態對象(這些來自點1)存儲在字典中,其中的鍵是ID和值是國家對象。當你執行一個轉換時,你只需在字典中查找目標狀態並從那裏獲取實例。

如果狀態的實例將被按需

字典將包含元數據對於每個狀態(這可以是XML或者是從原來的水合以優化格式創建的XML),那麼當需要進行狀態轉換時,可以查看字典中的狀態,並根據與狀態ID關聯的元數據動態實例化狀態。

+0

謝謝;最初是從專家程序員編寫的預先創建的文件中查找狀態;但我想寫的GUI工具會解析它,並允許非專家動態創建狀態。爲了這;該工具會讀取並寫回到xml。 XML可能不是一個很好的代表;但是因爲我也想要定義UI元素而被選中。 FSM定義可以提取出一個元表示。你有什麼建議? – iceman