[开源项目]轻量级Java有限状态机 Squirrel State Machine

2014-01-19 10:07:21 +08:00
 hekailiang
Squirrel State Machine 是基于Java的有限状态机的实现。主要实现功能包括:

- 提供友好的API来构建状态机
- 提供基于注释声明状态机
- 事件驱动的状态转移
- 支持异步动作执行与异步事件派发
- 状态机自诊断
- 状态机导出SCXML,DOT文件

欢迎star && fork:
https://github.com/hekailiang/squirrel
12002 次点击
所在节点    Java
5 条回复
kalman03
2014-01-19 21:48:39 +08:00
不错
Tankpt
2014-01-20 09:08:43 +08:00
昨天晚上也刚好看到一个状态机的想目,小白想问下这个东西在哪些地方有用的?
我只记得本科在学电路中硬件编程中会用到这个,不知其他方面呢?希望指点下
hekailiang
2014-01-20 09:26:37 +08:00
@Tankpt 所谓状态机简单来说就是管理程序执行时刻的上下文(或者说是内部状态)。一般在代码逻辑还不是很复杂的时候我们会使用if-elseif-else来管理这些执行状态,但随着需求不断变化,代码内部状态越来越复杂,会出现if-else深层嵌套,if-else的判断条件复杂难懂,这样造成代码的扩展性和可以维护性急剧下降。一般出现这种情况时可以考虑使用状态机来优化实现。常用的场景有游戏控制器,词法分析器,执行单元控制器等等。
Tankpt
2014-01-20 12:44:14 +08:00
@hekailiang 嗯嗯,明白了。突然想起来之前编译原理里貌似学过的。。突然想起来好多,哈哈
julyclyde
2014-01-21 22:48:59 +08:00
查表法代替if

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/97572

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX