在 UML 状态机中,如果进入子状态的最终状态,复合状态的历史究竟会发生什么?
考虑如下所示的状态机。在触发序列 T1-T2-T3-T4 之后,它将最终处于最终状态。通过进入最终状态,State21 区域的历史被清除,并且由于该区域也由此完成,将执行到 State1 的完成转换。现在,当触发器 T5 启用时,状态机进入深度历史状态。我假设在这种情况下,深度历史状态代表 State21,这意味着状态机进入 State21,然后执行从 State21 的初始伪状态到 State211 的转换。这个对吗?
我更喜欢上面描述的行为,但我可以看到另一种选择,其中当进入 State21 的最终状态时,State2 的历史也会被清除。在这种情况下,状态机执行从 State2 的初始伪状态到 State22 的转换。所以你怎么看?
