定义发生事情时要做的一切,
我非常感谢,
但从未尝试过。
我的问题是:如何设计一个基于状态机的系统?
你看过状态模式吗?也在这里。Apache Commons SCXML 也可能对您有用。
“状态事件”驱动的架构被用于相当多的应用领域。事实上,有一个称为smc(状态机编译器)的工具,它采用状态机的规范(很像 lex 和 yacc 采用扫描仪和解析器定义)并生成 C 或其他语言的代码来实现它。
根据我的经验,状态机的基础是 switch 语句。
其中的每个案例都代表您机器的一个状态。
switch 语句需要定期调用,这可以在编码循环中,也可以在事件处理程序中。这实际上取决于您的状态机在做什么,您希望您的软件如何运行或做出反应。
您可以从 case 语句中更新状态变量以更改状态。