\begin{slide}{Strukturmuster: Fliegengewicht}

\begin{itemize}
\item
  ein Teil des Zustandes wird \emph{externalisiert},

  d. h. weiter außen verwaltet
\item
  dann gibt es nur noch wenige verschiedene interne Zustände

  d. h. man braucht nur wenige verschiedene Objekte
\end{itemize}

\end{slide}


\begin{slide}{Verhaltensmuster: Interpreter}

Beispiele
\begin{itemize}
\item reguläre Ausdrücke für Dateinamen/Pfade
\item Konfigurations-Angaben für Webserver
\end{itemize}

\end{slide}

\begin{slide}{Verhaltensmuster: Memento}

\begin{itemize}
\item
  Schnappschuß eines Objektes anlegen und speichern
\item
  später in diesen Zustand rückversetzen
\end{itemize}

\end{slide}

\begin{slide}{Verhaltensmuster: Zustand}

\begin{itemize}
\item
  Objekt enthält Zustands-Objekt
\item
  Änderung des Zustandes ändert das Verhalten
\item
  \dots scheinbar ändert das Objekt seine Klasse
\end{itemize}

\end{slide}

\begin{slide}{Verhaltensmuster: Beobachter}

Siehe Code-Beispiel.

Mögliche Anwendungen bei Sudoku-Beispiel
\begin{itemize}
\item
  jede Zeile (Spalte, Block) beobachtet \glqq ihre\grqq\ Zellen
\item
  jede GUI-Komponenten beobachtet ihre Zelle

  (typisch: Model/View/Controller)
\end{itemize}

\end{slide}

