用于保存大量状态机信息的数据结构

时间:2011-10-08 14:13:29

标签: c# data-structures asynchronous state-machine

我有一个XML文件,想要在c#数据结构中表示XML文件中描述的复杂有限状态机。我可以使用哪种数据结构?一个州的定义是here。状态机根据各种异步事件显示同步和异步转换和操作。

1 个答案:

答案 0 :(得分:1)

您应该首先看一下State Design Pattern如何帮助您。

你有两件事你需要

如果您的状态实例是预先创建的。

  1. 这些状态的内部表示,您可以将XML反序列化为。这将是一系列代表XML结构的类。

  2. 由于每个状态似乎都有一个ID,并且您使用此ID转换到目标状态,因此您可以将状态对象(这些来自第1点)存储在字典中,其中键是ID,并且value是状态对象。当您执行转换时,您只需在字典中查找目标状态并从那里获取实例。

  3. 如果要按需创建状态实例

    字典将包含每个状态的元数据(这可以是XML或从原始XML中提取的优化格式)然后当需要状态转换时,您在字典中查找状态并且从与状态id相关联的元数据动态实例化状态。