V2EX = way to explore
V2EX 是一个关于分享和探索的地方
Sign Up Now
For Existing Member  Sign In
hekailiang
V2EX  ›  Java

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

  •  
  •   hekailiang ·
    hekailiang · Jan 19, 2014 · 12864 views
    This topic created in 4484 days ago, the information mentioned may be changed or developed.
    Squirrel State Machine 是基于Java的有限状态机的实现。主要实现功能包括:

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

    欢迎star && fork:
    https://github.com/hekailiang/squirrel
    5 replies    1970-01-01 08:00:00 +08:00
    kalman03
        1
    kalman03  
       Jan 19, 2014
    不错
    Tankpt
        2
    Tankpt  
       Jan 20, 2014
    昨天晚上也刚好看到一个状态机的想目,小白想问下这个东西在哪些地方有用的?
    我只记得本科在学电路中硬件编程中会用到这个,不知其他方面呢?希望指点下
    hekailiang
        3
    hekailiang  
    OP
       Jan 20, 2014
    @Tankpt 所谓状态机简单来说就是管理程序执行时刻的上下文(或者说是内部状态)。一般在代码逻辑还不是很复杂的时候我们会使用if-elseif-else来管理这些执行状态,但随着需求不断变化,代码内部状态越来越复杂,会出现if-else深层嵌套,if-else的判断条件复杂难懂,这样造成代码的扩展性和可以维护性急剧下降。一般出现这种情况时可以考虑使用状态机来优化实现。常用的场景有游戏控制器,词法分析器,执行单元控制器等等。
    Tankpt
        4
    Tankpt  
       Jan 20, 2014
    @hekailiang 嗯嗯,明白了。突然想起来之前编译原理里貌似学过的。。突然想起来好多,哈哈
    julyclyde
        5
    julyclyde  
       Jan 21, 2014 via iPad
    查表法代替if
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   2730 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 41ms · UTC 14:28 · PVG 22:28 · LAX 07:28 · JFK 10:28
    ♥ Do have faith in what you're doing.