状态机的介绍和使用 (状态机的作用)
本文目录导航:
状态机的介绍和使用
一、状态机简介状态机,简称有限状态自动机,是现实事物运行规则抽象的一个数学模型。
一个状态机至少包含两个状态,如自动门的open和closed。
状态机的四大概念包括状态、事件、动作和变换。
事件触发状态变化,动作执行事件后的操作。
二、DSLDSL是一种针对特定领域的语言,提供清晰的沟通方式,便于理解、修改代码。
内部DSL是一种特定用法的通用语言,如状态机的实现。
外部DSL与宿主语言不同,采用自定义语法,如plantUML。
Workbench是DSL的可视化形态,实现配置化。
三、状态机实现调研Spring Statemachine是用于在Spring应用程序中使用状态机概念的框架,提供如papyrus的Eclipse Plugin、配置、定义、事件、状态扩展等功能。
四、状态机DEMOSpring状态机示例包括构造状态机、状态机状态监听器、配置、接口示例等。
COLA状态机示例展示了运输需求单状态流转。
五、状态机对比选择状态机组件时,若直接使用组件库,Spring状态机是合适的选择。
若希望逐步定制化,满足特定业务需求,推荐使用COLA状态机。
六、iTMS使用状态机计划iTMS计划渐进式采用COLA状态机组件,先轻量级使用,随后基于DDD和CQRS设计模式,封装命令,使用状态机进行业务流转。

“状态机”是什么?
就是一组状态,各个状态之间,依据一定的条件,(如输入一个1或者是0)存在一定的转换,(从状态X转换到状态Y)它有一个起始状态和若干终结状态,从起始状态开始,根据输入的串转换状态,直到所有的输入的被状态机处理,看看追最后停留的状态是否为终结状态,是的话就说这个串符合这个状态机规则,或者说被这个状态机接受!流程可能是瞬间的动作经历很多步骤,比如“登录”流程,点击“登录”按钮之后,会有验证帐号、密码、验证码的诸多流程,但是都是在点击登录按钮的瞬间,逐一完成。
而状态机表示的都是一个已经完成的状态,每一个环节都是可以独立存在的。
状态机的概念与设计
状态机的基本结构及类型有限状态机(Finite State Machine,FSM)由三部分构成:状态触发器、状态数以及公共时钟脉冲源。
FSM中的状态数有限,且状态的转换在同一个时钟源的同一脉冲边沿同步进行,因此被称为时钟同步状态机。
状态机的基本操作主要分为两类:米利型(Mealy)状态机和穆尔型(Moore)状态机。
米利型状态机的输出信号与电路的输入信号有关,而穆尔型状态机的输出仅依赖于当前状态,与输入信号无关。
状态机的状态图表示法状态图使用圆圈表示状态,圆圈内的符号指示状态。
带箭头的方向线表示状态转换,当箭头的起点和终点在同一圆圈上时,表示状态不变。
状态转换有两种方式:无条件转移和有条件转移。
无条件转移直接从一个状态转移到另一个状态,而有条件转移则需要满足特定条件。
米利型状态图示例展示了状态机的输出不仅取决于当前状态,还受到输入信号的影响。
而穆尔型状态图则将输出变量写在状态圆圈内部,直观表示输出只依赖于当前状态。
状态机的设计步骤设计状态机的步骤包括:分析需求、定义状态、确定转换规则、设计状态转移图等。
第3步,即设计状态图,是整个设计过程中的关键步骤。
状态图清晰地反映了状态机各个状态之间的转换关系和条件。
如果状态数量较多,可以使用状态表表示转换条件。
对于输出信号较多的情况,可以采用输出逻辑真值表进行描述。