我正在设计一个可以检查用户账户余额的应用程序,我为应用程序设置了一个 FSM,并为此创建了一个复合状态。
我有一些疑问:
设置两个箭头来从这种复合状态过渡是否正确?
这两个转换是从 creditAccountCheck 发出的,但我没有从这个状态设置箭头,对吗?
随时给我任何其他评论。
我正在设计一个可以检查用户账户余额的应用程序,我为应用程序设置了一个 FSM,并为此创建了一个复合状态。
我有一些疑问:
设置两个箭头来从这种复合状态过渡是否正确?
这两个转换是从 creditAccountCheck 发出的,但我没有从这个状态设置箭头,对吗?
随时给我任何其他评论。
没问题,行旁边的标签是触发器,因此一旦发生其中一个事件(有钱和(没有)负余额),就会触发适当的转换。
没关系,可以将复合状态视为常规“accountCheck”状态的扩展视图(毕竟,其余的简单状态内部可能也有某种 FSM)。
尽管规范允许从复合形状内部进行过渡,但我建议不要这样做,因为它打破了概念界限。
如果您想显式地可视化流程,则可以使用符号表示。
两者的作用基本相同。在你的情况下,你选择哪一个并不重要,无论是你的(“缺失”的转换是隐含的——使用常识来决定它会如何进行),或者那些。如果您的状态更复杂,具有复杂的分支和正交状态,您可能需要使用更复杂的符号。
最后,“hasMoneyAndNoNegativeBalance”和“hasMoneyAndNegativeBalance”有点多余。在这个阶段你总是有钱的,否则不会进行过渡“HasMoney”,所以“negativeBalance”和“positiveBalance”应该足够了(并且更容易阅读)。