- 作者:老汪软件技巧
- 发表时间:2024-09-10 15:01
- 浏览量:
本篇简单介绍下squirrel-foundation(松鼠状态机)了解的可以跳过。
if/else和switch对比条件方式判断方式相对效率应用范围可读性
if/else
逐级条件判断
低
条件自由组合、万金油
低
switch
跳跃式
高
单一值匹配
高
其实本篇主题是记录下状态机(squirrel-foundation)的基本用法,难免不了要和内置的基本语法实现做比较,由于才疏学浅不知道该怎么简明扼要的描述它的优势。
明显的优势就是在语法和扩展性上直接带来的便捷;让水平不高的我也可以写出清晰优雅的代码。当然写业务前梳理完整的业务状态变换是必要的功课。
状态机可以使用条件分支判断、状态模式和基于DSL来实现,其中更具表达性的DSL也是很多开源状态机的实现方式。
squirrel-foundation(松鼠状态机)
squirrel-foundation有限状态机,我理解可以穷举业务流程状态了。非穷举的我到目前接触的是工作流通过xml描述流程。
通过这个图结合下面的入门的一些API调用可以更好的了解整个过程。
大概的过程分为:定义-》触发-》事件执行-》AOP(处理)-》异常处理
入门案例
StateMachine接口采用四个泛型类型参数。StateMachine
参数解释
代表已实现状态机的类型 ,, 也就是状态机本体
代表实现状态的类型
代表已实现事件的类型
代表已实现的外部上下文的类型