我知道 action 在entry时开始执行,并且只要它处于状态,动作就会执行do 。
但我认为entry缺乏定义,它是否类似于do或动作在进入状态时执行并且即使在离开状态后仍继续执行?
我知道 action 在entry时开始执行,并且只要它处于状态,动作就会执行do 。
但我认为entry缺乏定义,它是否类似于do或动作在进入状态时执行并且即使在离开状态后仍继续执行?
从 UML 2.5 p。307:
14.2.3.4.3 状态进入、退出和 doActivity 行为
一个状态可能有一个关联的入口行为。此行为(如果已定义)将在通过外部转换进入状态时执行。此外,一个状态也可能有一个关联的退出行为,如果定义了,它会在状态退出时执行。一个状态也可能有一个关联的 doActivity 行为。此行为在进入状态时开始执行(但仅在状态进入行为完成后)并与可能与状态相关联的任何其他行为同时执行,直到:
- 它完成(在这种情况下会生成完成事件)或
- 状态退出,在这种情况下 doActivity 行为的执行被中止。
状态的 doActivity 行为的执行不受该状态的内部转换触发的影响。