Sdílet prostřednictvím


Pracovní postupy vývojového diagramu

Vývojový diagram je známé paradigma pro navrhování programů. Aktivita vývojového diagramu se obvykle používá k implementaci nesekvenčních pracovních postupů, ale lze ji použít pro sekvenční pracovní postupy, pokud se nepoužívají žádné FlowDecision uzly.

Struktura pracovního postupu vývojového diagramu

Aktivita vývojového diagramu je aktivita, která obsahuje kolekci aktivit, které se mají spustit. Vývojové diagramy také obsahují prvky řízení toku, jako FlowDecision jsou a FlowSwitch<T> které přímé provádění mezi obsaženými aktivitami na základě hodnot proměnných.

Typy uzlů toku

Různé typy prvků se používají v závislosti na typu řízení toku vyžadovaného při spuštění elementu. Mezi typy elementů vývojového diagramu patří:

  • FlowStep – Modeluje jeden krok provádění ve vývojovém diagramu.

  • FlowDecision - Větve provádění na základě logické podmínky, podobně jako If.

  • FlowSwitch – Větve provádění na základě výhradního přepínače, podobně jako Switch<T>.

Každý odkaz má Action vlastnost, která definuje ActivityAction , které lze použít ke spouštění podřízených aktivit, a jednu nebo více Next vlastností, které definují, který prvek nebo element se má provést při dokončení provádění aktuálního elementu.

Vytvoření základní sekvence aktivit pomocí uzlu FlowStep

Chcete-li modelovat základní sekvenci, ve které se provádějí dvě aktivity, použije se FlowStep prvek. V následujícím příkladu se k provedení dvou aktivit v posloupnosti používají dva FlowStep prvky.

<Flowchart>
  <FlowStep>
    <Assign DisplayName="Get Name">
      <Assign.To>
        <OutArgument x:TypeArguments="x:String">[result]</OutArgument>
      </Assign.To>
      <Assign.Value>
        <InArgument x:TypeArguments="x:String">["User"]</InArgument>
      </Assign.Value>
    </Assign>
    <FlowStep.Next>
      <FlowStep>
        <WriteLine Text="Hello, " & [result]/>
      </FlowStep>
    </FlowStep.Next>
  </FlowStep>
</Flowchart>

Vytvoření podmíněného vývojového diagramu pomocí uzlu FlowDecision

K modelování podmíněného uzlu toku v pracovním postupu vývojového diagramu (tj. k vytvoření propojení, které funguje jako symbol rozhodnutí tradičního vývojového diagramu), FlowDecision se použije uzel. Vlastnost Condition uzlu je nastavena na výraz, který definuje podmínku, a TrueFalse vlastnosti jsou nastaveny na FlowNode instance, které se mají spustit, pokud se výraz vyhodnotí jako true nebo false. Následující příklad ukazuje, jak definovat pracovní postup, který používá FlowDecision uzel.

<Flowchart>
  <FlowStep>
    <Read Result="[s]"/>
    <FlowStep.Next>
      <FlowDecision>
        <IsEmpty Input="[s]" />
        <FlowDecision.True>
          <FlowStep>
            <Write Text="Empty"/>
          </FlowStep>
        </FlowDecision.True>
        <FlowDecision.False>
          <FlowStep>
            <Write Text="Non-Empty"/>
          </FlowStep>
        </FlowDecision.False>
      </FlowDecision>
    </FlowStep.Next>
  </FlowStep>
</Flowchart>

Vytvoření výhradního přepínače s uzlem FlowSwitch

Pokud chcete modelovat vývojový diagram, ve kterém je vybrána jedna exkluzivní cesta na základě odpovídající hodnoty, FlowSwitch<T> použije se uzel. Vlastnost Expression je nastavena Activity<TResult> na s parametrem Object typu, který definuje hodnotu, která odpovídá volbě. Vlastnost Cases definuje slovník klíčů a FlowNode objektů, které se mají shodovat s podmíněným výrazem, a sadu FlowNode objektů, které definují, jak se má provádění provádět, pokud daný případ odpovídá podmíněnému výrazu. Definuje FlowSwitch<T> také Default vlastnost, která definuje, jak má provádění tokovat, pokud žádné případy neodpovídají výrazu podmínky. Následující příklad ukazuje, jak definovat pracovní postup, který používá FlowSwitch<T> element.

<Flowchart>
  <FlowSwitch>
    <FlowStep x:Key="Red">
      <WriteRed/>
    </FlowStep>
    <FlowStep x:Key="Blue">
      <WriteBlue/>
    </FlowStep>
    <FlowStep x:Key="Green">
      <WriteGreen/>
    </FlowStep>
  </FlowSwitch>
</Flowchart>