Ich möchte eine Reihe von Befehlsausführungen ausgeben, aber nur, wenn der vorherige Befehl erfolgreich war. Im Moment hebe ich ein Ereignis innerhalb des Befehlsobjekts an, das anzeigt, ob der Befehl erfolgreich war oder fehlgeschlagen ist. Ich benutze dies, um die Ausführung zu kontrollieren, aber es fühlt sich unelegant an.Befehlsmuster: Ausführen mehrerer Befehle in Sequenz
Beispiel:
command1.CommandSucceeded += delegate { command2.Execute(); };
command1.Execute();
Dies funktioniert, aber es fühlt sich ungeschickt und wenig intuitiv. Ich könnte einen booleschen Wert von Execute() zurückgeben, der Erfolg oder Misserfolg anzeigt, aber das ist auf dem gleichen Pfad. Ich könnte Ausnahmen bei einem Fehler auslösen, was zu saubererem Code führen könnte, aber möglicherweise übertrieben ist.
Irgendwelche Vorschläge?
Ja die Verantwortungskette Muster:
Dann wird die Liste der Befehlsobjekte wie folgt ausgeführt. – pjp
Wusste nicht, dass es so genannt wurde. Danke für die Information. –
Das Chain of Responsibility-Muster scheint gut zu passen. Danke für die Antwort. – Josh