Simple Command Framework – Command Container

Kontainer sind das Schlüsselkonzept des Simple Command Framework. Es gibt verschiedene Modi, wie die Commands im Kontainer abgearbeitet werden:

  • Sequentiell: Dabei wird jedes Command aufgerufen unabhängig vom Rückgabewert oder Verhalten anderer Comnands.
  • Als Chain: In diesem Fall beeinflusst die ordentliche Ausführung des vorherigen Commands ob die Kette unterbrochen wird oder weiter ausgeführt.
  • Als Prozess: In diesem Fall beeinflusst das vorherige Command welches Command als nächstes aufgerufen wird.

Das Framework implementiert das composite pattern. Es existiert ein zweites Interface, welches command erweitert aber als Kontainer fungiert, in dem sowohl Command-Objekte als auch weitere Kontainer eingefügt werden können.

Da der Kontainer das gleiche Interface implementiert, wie das einzelne Command, gibt es auch hier eine execute()-Methode. Das execute()  ruft in diesem Fall die execute()-Methode der einzelnen Commands im Kontainer auf, ggf. auch von weiteren Kontainern.

Dabei gibt es mehrere Möglichkeiten die Abarbeitungsreihenfolge im Kontainer zu beeinflussen:

  • First come first serve: In diesem Modus ist die Abarbeitungsreihenfolge analog der Reihenfolge, in der die Elemente in den Kontainer hinzugefügt wurden.
  • Prioritätsgesteuert: In diesem Falle kann man über eine Priorität die Abarbeitungsreihenfolge steuert. Gibt es zwei Elemente mit der gleichen Priorität, wird in diesem Fall wieder „first come first serve“ realisiert.

Wie genau diese verschiedenen Modi implementiert werden kann in der Original Dokumentation nachgelesen werden.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.

%d Bloggern gefällt das: