前言

状态机的概念很可能比任何读者都要古老 这些参考文档的存在,肯定早于Java版本 语言本身。有限自动机的描述可以追溯到1943年 当沃伦·麦卡洛克和沃尔特·皮茨先生写了一篇关于 它。后来,乔治·H·米利提出了一个状态机概念(称为 一台“Mealy Machine”)。一年后,即1956年,爱德华·F· 摩尔发表了另一篇论文,描述了被称为 一台“摩尔机器”。如果 你有没有读过关于状态机的资料,名字,米利和摩尔, 应该早点出现的。spring-doc.cadn.net.cn

本参考文献包含以下部分:spring-doc.cadn.net.cn

引言包含了本参考文献的介绍。spring-doc.cadn.net.cn

使用 Spring 状态机描述了 Spring 状态机(SSM)的使用方式。spring-doc.cadn.net.cn

状态机示例包含更详细的状态机示例。spring-doc.cadn.net.cn

常见问题解答包含常见问题解答。spring-doc.cadn.net.cn

附录包含关于已使用材料和状态机的通用信息。spring-doc.cadn.net.cn

介绍

Spring状态机(SSM)是一个框架,使应用开发者能够 在 Spring 应用中使用传统的状态机概念。SSM 提供以下功能:spring-doc.cadn.net.cn

在继续之前,我们建议你先阅读附录《词汇表》和《状态机速成课程》,以了解什么是状态机。 其他文档都期望你是 熟悉状态机的概念。spring-doc.cadn.net.cn

1. 背景

状态机之所以强大,是因为它们的行为总是被保证 由于作性,调试相对稳定且相对容易 机器启动时,规则已经被刻在石头上。这个想法是你的 应用现已进入状态,且可能存在于有限的状态中。然后是别的 这种情况会让你的申请从一个州转到另一个州。 状态机由触发器驱动,触发器基于以下 事件或计时器。spring-doc.cadn.net.cn

在你之外设计高级逻辑要容易得多 应用并与状态机交互,在各种 不同的方式。你可以通过以下方式与状态机交互 发送事件、监听状态机的作,或请求 现在的状态。spring-doc.cadn.net.cn

传统上,状态机是在 开发者意识到代码库开始显得像一块板子 满是意大利面。意大利面条代码看起来像是永无止境的层级结构 IF、ELSE 和 BREAK 子句的结构,编译器可能应该 当事情开始变得过于复杂时,请开发者回家。spring-doc.cadn.net.cn

2. 使用场景

当项目适合以下条件时,可以使用状态机:spring-doc.cadn.net.cn

当你在尝试实现状态机时,你已经在尝试实现状态机了:spring-doc.cadn.net.cn

  • 使用布尔标志或枚举来模拟情境。spring-doc.cadn.net.cn

  • 设置只对你部分部分有意义的变量 应用生命周期。spring-doc.cadn.net.cn

  • 循环使用if-else结构(或者更糟的是,多个此类结构), 检查某个特定标志是否存在 enum已设置,然后在确定时进一步破例处理。 你的旗帜和枚举组合存在或不存在。spring-doc.cadn.net.cn