Hallo,
bei der Beschäftigung mit dem Thema Flow Design, bin ich auf eine Frage gestoßen, zu der ich keine Informationen finden konnte.
Wie notiert und implementiert man am besten Kontrollstrukturen auf hoher Abstraktionsebene.
Klar, Logik, also Bedingungen und Schleifen, darf bei einem FD nur in den Blättern des Abhängigkeitsgraphen der Funktionseinheiten enthalten sein.
Aber was ist, wenn eine FU z.B. unter einer Bedingung oder innerhalb einer Schleife einen Subflow aufrufen soll?
Ich kann mir nicht vorstellen, dass dies im FD nicht vorgesehen ist.
Natürlich hab ich schon mal mein eigens Hirn angestrengt. Im Anhang ist ein simpler Beispiel Flow zu sehen.
Nehmen wir an, dass C und D komplizierte Subflows enthalten. A ist ein "Board" und B ist ein "Part" bzw. Blatt.
Wie kennzeichne ich hier die Bedingung, dass entweder B oder C ausgeführt wird?
Eine mögliche Umsetzung mit Methoden wäre wie folgt.
public string A(string message)
{
Result1 = C;
Result2 = D;
return B(message);
}
private string B(string message)
{
if (DateTime.Now.Millisecond % 2 == 0)
{
return Result1(message);
}
else
{
return Result2(message);
}
}
private Func<string, string> Result1;
private Func<string, string> Result2;
private string C(string message)
{
return message + "C";
}
private string D(string message)
{
return message + "B";
}
Kann mir jemand hierzu was sagen, sind meine Überlegungen grundsätzlich richtig, oder gibt es Ressourcen, die ich noch nicht kenne?
Danke und Grüße
Leif