Beseitigen von überflüssigem Code durch Kombinieren von Zustandsaktionen
Sie können entry-, during- und exit-Aktionen kombinieren, die dieselben Aufgaben in einem Zustand ausführen.
Durch die Kombination von Zustandsaktionen, die dieselben Aufgaben ausführen, eliminieren Sie überflüssigen Code. Beispiel:
| Separate Aktionen | Gleichwertige kombinierte Aktionen |
|---|---|
entry: y = 0; y=y+1; during: y=y+1; |
entry: y = 0; entry, during: y=y+1; |
en: fcn1(); fcn2(); du: fcn1(); ex: fcn1(); |
en, du, ex: fcn1(); en: fcn2(); |
Durch die Kombination von Zustandsaktionen auf diese Weise wird dasselbe Verhalten bei der Ausführung von Diagrammen (Semantik) und derselbe Code wie bei den entsprechenden separaten Aktionen erzeugt.
So kombinieren Sie Zustandsaktionen
Kombinieren Sie eine Reihe von entry-, during- und/oder exit-Aktionen, die dieselbe Aufgabe erfüllen, wie eine durch Kommas getrennte Liste in einem Zustand. Hier ist die Syntax:
entry, during, exit: task1; task2;...taskN;
Sie können auch die entsprechenden Abkürzungen verwenden:
en, du, ex: task1; task2;...taskN;
Gültige Kombinationen
Sie können die drei Aktionen beliebig kombinieren. Zum Beispiel sind die folgenden Kombinationen gültig:
en,du:en,ex:du,ex:en,du,ex:
Sie können Aktionen in beliebiger Reihenfolge in der durch Kommas getrennten Liste kombinieren. Zum Beispiel ergibt en, du: dasselbe Ergebnis wie du, en:.
Ungültige Kombinationen
Sie können nicht zwei oder mehr Aktionen desselben Typs kombinieren. Zum Beispiel sind die folgenden Kombinationen ungültig:
en,en:ex,en,ex:du,du,ex:
Wenn Sie mehrere Aktionen desselben Typs kombinieren, erhalten Sie eine Warnung, dass die Aktion im Diagramm nur einmal ausgeführt wird.
Reihenfolge der Ausführung kombinierter Aktionen
Zustände führen kombinierte Aktionen in derselben Reihenfolge aus wie separate Aktionen:
Entry-Aktionen zuerst, von oben nach unten in der Reihenfolge, in der sie im Zustand erscheinenDuring-Aktionen als Zweites, von oben nach untenExit-Aktionen als Letztes, von oben nach unten
Die Reihenfolge, in der Sie Aktionen kombinieren, hat keinen Einfluss auf das Ausführungsverhalten des Zustands. Beispiel:
| Kombinierte Aktionen | Ausführungsreihenfolge |
|---|---|
|
|
|
|
|
|
|
|
Regeln für die Kombination von Zustandsaktionen
Kombinieren Sie nicht mehrere Aktionen desselben Typs.
Erstellen Sie keine Daten, Ereignisse oder Nachrichten, die denselben Namen wie die Aktionsschlüsselwörter haben:
entry,en,during,du,exit,ex.



