EMZETT.
Login

State-Muster (Zustandsautomat)

Kurz: Das State-Muster lässt ein Objekt sein Verhalten ändern, wenn sich sein innerer Zustand ändert. Dahinter steht die Idee eines Zustandsautomaten.

Genauer: Ein Automat hat Zustände (z. B. „Offen”, „Bezahlt”, „Versandt”, „Storniert”) und erlaubte Übergänge. Statt viele if-Abfragen auf einen Statuswert zu verteilen, kapselt man jedes Verhalten in einen eigenen Zustand.

Im Detail

  • Beispiel Bestellung: Von „Offen” kann man zu „Bezahlt” oder „Storniert”, von „Storniert” nicht mehr zu „Versandt”.
  • Vorteile: Ungültige Übergänge sind unmöglich oder leicht prüfbar, Logik an einer Stelle.
  • Anwendung: Ampeln, Spiel-Figuren, Netzwerkverbindungen, Bestellprozesse, Parser, UI-Abläufe.
  • Einfache Form: Eine Tabelle erlaubter Übergänge (offen → bezahlt) reicht oft.
  • Zustandsdiagramm: Kreise für Zustände, Pfeile für Übergänge (UML (Unified Modeling Language)).

Siehe auch: Strategy-Muster, Command-Muster