是的,这是合法的。
如果要进行分层,则顺序是在进入时从最外层到最内层,在退出时从最内层到最外层。让事情变得更复杂的是,你需要了解,你什么时候真正离开这个州。
让我们看一下从 C 到 A 的两条线。
第一个向上,从A出来,然后弯曲返回到A。这意味着你退出C,B,A,然后进入A,这将是活动的执行顺序。请注意,如果转换本身有任何 Activity,它将在退出 A 时的 Activity 和进入 A 时的 Activity 之间执行。因此我们有退出 C、退出 B、退出 A、转换、进入 A。
第二条线向右走,但停在A边界。这意味着,您永远不会退出(也不会重新进入)A。但是,您会退出C,然后退出B,并且按照该顺序执行退出活动。如果有任何转换活动,它将最后运行。所以我们有 C 出口、B 出口、过渡。
入口的行为顺序相反(因此分别为出口 A、过渡、入口 A、入口 B、入口 D(曲线)和过渡、入口 B、入口 D(直线)
最后,B 内的 Start 伪状态开始并前往 C 始终保持在 B 内,因此唯一的活动将是转换,进入 C。