You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用UML建模状态机行为继承与差异化事件处理逻辑?

UML状态机事件处理的标注方法

针对你描述的状态机需求,UML可以通过事件转发和终止事件传递这两个机制来实现,具体标注方式如下:

1. 子状态AA处理Event1的标注

当处于AA状态时,Event1需要被AA和父状态A同时处理。UML默认事件会从子状态向上传递,但如果子状态处理了事件就会终止传递,所以这里需要让AA在处理后主动转发事件给父层级:

  • 在AA状态的内部转换中定义:Event1 / AA:Event1; send(Event1)
    • 前半部分AA:Event1是AA自身对Event1的处理动作;
    • 后半部分send(Event1)是显式把Event1转发给父状态A,这样A就能捕获并处理该事件。

2. 子状态AB处理Event1的标注

处于AB状态时,Event1仅由AB处理,不需要传递给父状态A。只需在AB状态的内部转换中直接定义处理动作,不添加转发即可:

  • 内部转换标注为:Event1 / AB:Event1
    此时AB处理完Event1后,事件传递链会自动终止,父状态A不会收到该事件。

3. 状态转换的标注

  • 状态机启动后,从初始节点(实心圆)指向复合状态A,A的初始子状态设为AA(用带箭头的虚线从A内部的初始点指向AA);
  • 从AA到AB的转换箭头标注触发事件Event2,表示收到Event2后从AA切换到AB。

对应的行为验证和你给出的预期一致:

A
AA
-> Event1
AA:Event1
A:Event1
-> Event2
AB
-> Event1
AB:Event1

内容的提问来源于stack exchange,提问作者Patrick Wright

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.28 12:48:13