答案 0 :(得分:1)
似乎只能定义一个退出行为(第307页):
14.2.3.4.3状态进入,退出和行动能力行为 州可能有相关的入境行为。只要通过外部转换输入状态,就会执行此行为(如果已定义)。此外,一个国家也可能有一个相关的退出行为,如果已定义,则在退出国家时执行。
同样在后面的段落中,他们只谈到event
单数。 E.g。
14.2.3.4.6退出州 退出状态时,无论是简单状态还是复合状态,在完成与退出相关的所有其他行为之后,退出所涉及的最后一步是执行该状态的退出行为。如果状态具有在退出状态时仍在执行的doActivity行为,则在退出行为开始执行之前该行为将被中止。
因此,您需要测试exit
行为中的状态转换以采取相应的操作。
N.B。我正在使用Enterprise Architect,它允许定义多个exit
行为。没有办法定义任何保护我的假设只允许一个exit
被允许。所以这里的实施可能会被打破。
答案 1 :(得分:0)
如其他回复中所述,只有一个退出行动。
但是,您可以在状态中存在多个转换(每个导航栏项目一个),每个转换都有自己的触发器,防护和行为。
根据您的工作流程,这些可以是自转换(返回相同状态)或转到另一个系统状态。这些也可以是内部的(例如,在进行转换时不退出状态。