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