状态机的实现编程有多种实现方法,但是我希望在编译成程序以后,程序还可以根据配置文件来决定状态:定义状态个数、一个状态转入下一个状态的条件都在配置文件中给出。这样的功能该怎样设计?

解决方案 »

  1.   

    harry202(harry) , :)
    你说的太轻巧了,我需要在状态中间定义一些操作,这个状态怎么样的我在编程的时候不知道。配置文件中写出这个状态接收哪些条件,得到这个条件后需要怎样的操作。这些程序中不知道。
      

  2.   

    不是太好搞,分析过几个关于FSM的设计模式,挺麻烦的。由于有this指针的存在,想解耦不是那么容易,你的问题是基于动态对象重构,用C++实现挺麻烦的,我最后再项目重放弃了,你可以以FSM + Design Pattern + pdf查查看,看看别人做的工作。gz
      

  3.   

    算法基本按照design patterns 中的State pattern。CaptainIII(山上人),你能够说说你的体会吗?harry202(harry),我们定义一些术语吧,这样好讨论。State:状态
    Event:触发事件
    Operator:操作
    StateMachine:状态机你有没有看State模式?
    一般来说Event传入一个Current State,如果这个State能够响应这个Event调用它的Operators(注意:可能有多个)。现在需要在运行时确定的就是:
    1、State的个数
    2、State所包含的Operator我是这样想的。各位有什么好建议?
      

  4.   

    CaptainIII(山上人) :你可以说说你是怎么做的吗?后来放弃了?你说的是什么地方需要解耦?