2
在状态模式中,这是如何建模的?具有不同警戒状态的状态转换
状态A到上触发X和conditon C1状态B时当前状态是A
状态A到状态C的触发X和条件C2时当前状态是A
这是怎么通常实现的呢?我可能需要执行很多警戒条件。
在状态模式中,这是如何建模的?具有不同警戒状态的状态转换
状态A到上触发X和conditon C1状态B时当前状态是A
状态A到状态C的触发X和条件C2时当前状态是A
这是怎么通常实现的呢?我可能需要执行很多警戒条件。
这是非常标准的例子, this example。
[编辑在基础这不是功课!]
假设我的理解对不对:
X
),它可以触发C1
或C2
)如果这是使用警戒条件的标准情况。语法是:
X[C1]
作为过渡A-> B的标签,和X[C2]
>℃。C1 & C2必须评估为布尔值,因此可以根据您的评论替换var==2
。即标签将变成X[var==2]
和X[var==3]
。
因为它在语义上是正确的,C1 & C2必须在状态A中互斥 - 否则你有非确定性。
hth。
没有功课。我想知道是否我有不同的警戒条件下使用的相同变量,如果我应该使条件成为触发器的一部分,使它们成为不同的触发器,或者如果它可以将它作为相同的触发器进行建模,例如if (var == 2)条件C1和另一个如果var == 3条件C2 – user716129 2011-04-20 19:35:27
谢谢,清除了。在一个相关的说明---如果我有多个触发器A,B导致两个状态S1和S2之间的转换,是否会造成任何问题?我在网上查看了一些状态图,没有看到任何导致两个州之间转换的多个事件......我应该将这个问题变成另一个问题吗? – user716129 2011-04-26 13:51:36
我会单独询问q。不能马上想到它为什么会导致问题,但正如你所说,不是(m)那里的任何例子。可能值得看看UML规范... – sfinnie 2011-04-26 16:20:54