<html><head><meta name="color-scheme" content="light dark"></head><body><pre style="word-wrap: break-word; white-space: pre-wrap;">\begin{slide}{Zustandsdiagramme}

Beschreiben mögliche Zustände und -Übergänge 
\emph{eines} Objektes.

gerichteter Graph
\begin{itemize}
\item Knoten: Zustände 
  (abgerundetes Rechteck, enthält Namen)

  Start- und Endzustand kennzeichnen
\item Kanten: Übergänge
  (beschrifteter Pfeil)  

  ausgelöst durch \emph{interne} und \emph{externe} Ereignisse
\end{itemize}
(Diagramm ähnlich zu Aktivitätsdiagrammen.)

Mathematisches Modell: endlicher Automat
(reguläre Sprache, Typ-3-Grammatik, regulärer Ausdruck)
\end{slide}


\begin{slide}{Zustände und Design}

Zustandsdiagramme sind nicht für jede Klasse nötig.

Im Gegenteil: weniger Zustand $\to$ bessere (Wieder-)Verwendbarkeit.

Falls doch Zustand nötig, 
dann mit Methoden für \glqq gefahrlose\grqq\ 
Speicherung und Wiederherstellung.

Ausweg: benutze separate Objekte, die Zustand 
und -Änderungen repräsentieren.

Beispiel: Spielfeld-Belegungen, Spielzüge (auch: Liste von \dots)
\end{slide}
</pre></body></html>