在状态机图中,动作可以在状态内执行,也可以在转换期间执行?
这个定义是真是假?
是的,用“行为”替换“行为”更准确(在状态机中,“图表”在这里不相关)
来自正式/2017-12-05 § 14.2.3.4.3 状态进入、退出和 doActivity 行为:
一个状态可能有一个关联的入口行为。此行为(如果已定义)将在通过外部转换进入状态时执行。此外,一个状态也可能有一个关联的退出行为,如果定义了,它会在状态退出时执行。
一个状态也可能有一个关联的 doActivity 行为。此行为在进入状态时开始执行(但仅在状态进入行为完成后)并与可能与状态相关联的任何其他行为同时执行,直到:
- 它完成(在这种情况下会生成完成事件)或
- 状态退出,在这种情况下 doActivity 行为的执行被中止。
状态的 doActivity 行为的执行不受该状态的内部转换触发的影响。
并从正式/ 2017-12-05 § 14.2.3.8 过渡:
一个Transition ...它可能有一个关联的效果Behavior,在Transition被遍历(执行)时执行。
A Behavior可以是OpaqueBehavior、Activity、StateMachine或Interaction(参见正式/ 2017-12-05 § 13.4.2.4 Specializations有关抽象类Behavior)