Marcel: Abläufe programmieren

Hallo

Ich schreibe in C# eine Methode, welche mehrere Abläufe steuert, d.h. jeder Ablauf gibt letztendlich true oder false zurück, je nachdem ob der Ablauf erfolgreich ausgeführt werden konnte.

Nun, wie programmiert man das "schön" und "elegant"? Bisher habe ich folgendes:

public bool steuereAbläufe() {
if(!startAblauf1()) {
    return false;
  }

if(!startAblauf2()) {
    return false;
  }

if(!startAblauf3()) {
    return false;
  }

if(!startAblauf4()) {
    return false;
  }

return true;
}

Gruss Marcel

  1. Hi Marcel,

    Ich kenn mich mit c# zwar nicht aus, aber in php, da gibts ja wohl nicht zu viele unterschiede... aber ein ä im funktionsname?

    vielleicht so:
    return(eins() and zwei() and drei())
    bzw wenns länger wird
    return(
    eins() and
    zwei() and
    drei()
    )

    Gruß, Marian

  2. Hallo Marcel,

    Neben der von Marian vorgeschlagenen Variante mit etwas kürzerer Syntax kann man das Problem auch anders lösen.
    Das bringt zwar einen Overhead mit sich, ist aber elegant und flexibel.

    Du definierst eine Schnittstelle Ablauf:

    interface Ablauf {
      boolean execute();
    }

    Und hältst dann eine Liste von Abläufen vor, die Du dann nur noch abarbeiten musst:

    boolean steuereAbläufe() {
      foreach(Ablauf a in abläufe) {
        if(!a.execute()) {
          return false;
        }
      }
      return true;
    }

    Die Syntax entspricht vermutlich nicht C#, da ich noch nie C# programmiert habe.

    Grüße

    Daniel