changeset 10:3f937af7e13e

added Erweiterungen; commented things out; other small things
author meillo@marmaro.de
date Tue, 19 Jun 2007 17:44:28 +0200
parents d7c3983a367a
children a7ab86cddfad
files observer.tex pics/observer-interaction_big.png
diffstat 2 files changed, 124 insertions(+), 60 deletions(-) [+]
line wrap: on
line diff
--- a/observer.tex	Tue Jun 19 16:44:59 2007 +0200
+++ b/observer.tex	Tue Jun 19 17:44:28 2007 +0200
@@ -7,8 +7,8 @@
 \documentclass{beamer}
 
 
-  \usepackage[T1]{fontenc}
-  \usepackage[latin1]{inputenc}
+%  \usepackage[T1]{fontenc}
+  \usepackage[utf8]{inputenc}
   \usepackage{ngerman}
   \usepackage{graphicx}
   \usepackage[automark]{scrpage2}
@@ -164,7 +164,7 @@
 }
 
 
-\frame{ \frametitle{2. Verbesserung: Pinnup-Sekretärin mit Benachrichtigung}
+\frame{ \frametitle{2. Verbesserung: Pinnwand-Sekretärin mit Benachrichtigung}
 
   \begin{block}{Lösung}
   \begin{itemize}
@@ -217,51 +217,56 @@
 
   \begin{block}{Neue Namen}
     \begin{itemize}
-      \item Pinnwand-Sekretärin-Einheit -> ``Subject''
-      \item Die Zettel auf der Pinnwand -> ``subjectState''
-      \item Interessenten -> ``Observers''
+      \item Pinnwand-Sekretärin-Einheit $\rightarrow$ ``Subject''
+      \item Die Zettel auf der Pinnwand $\rightarrow$ ``subjectState''
+      \item Interessenten $\rightarrow$ ``Observers''
     \end{itemize}
   \end{block}
 
   \pause
 
   \begin{block}{Schnittstellen}
-    Die Fähigkeiten die Pinnwand/Sekretärin und Interessenten haben müssen um in diesem Schema korrekt zu funktionieren sind ihre ``Interfaces''.
+    Die Fähigkeiten der Pinnwand/Sekretärin und Interessenten sind ihre ``Interfaces''.
   \end{block}
 
 }
 
 
-\frame { \frametitle{UML-Diagramm des Observers}
+\frame { \frametitle{Struktur-Diagramm des Observers}
   \centerline{ \includegraphics[width=20em]{pics/observer_big.png} }
 }
 
 
+\frame { \frametitle{Interaktions-Diagramm des Observers}
+  \centerline{ \includegraphics[width=26em]{pics/observer-interaction_big.png} }
+}
+
+
 % Daten aus der Beschreibung des Observers von GoF
 % in welche Gruppen wird er eingeordnet
-\frame{ \frametitle{Beschreibung des Observers}
-
-  \begin{block}{Klassifizierung}
-    Verhaltensmuster, objektbasierend
-  \end{block}
-
-  \begin{block}{Auch bekannt als}
-    Publish-Subscribe, Dependents
-  \end{block}
-
-  \begin{block}{Zweck}
-    Abhängigkeiten zwischen Objekten zu erstellen, sodass sich abhängige Objekte ändern, wenn sich das Objekt selbst ändert.
-    % todo: besser formulieren
-  \end{block}
-
-  \begin{block}{Kurzbeschreibung}
-    Schnittstellen anlegen, um Abhängigkeiten zwischen Objekten registriert
-    werden können, und um die abhängigen Objekte über Zustandsänderungen zu
-    informieren.
-    % todo: Formulierung überdenken
-  \end{block}
-
-}
+%\frame{ \frametitle{Beschreibung des Observers}
+%
+%  \begin{block}{Klassifizierung}
+%    Verhaltensmuster, objektbasierend
+%  \end{block}
+%
+%  \begin{block}{Auch bekannt als}
+%    Publish-Subscribe, Dependents
+%  \end{block}
+%
+%  \begin{block}{Zweck}
+%    Abhängigkeiten zwischen Objekten zu erstellen, sodass sich abhängige Objekte ändern, wenn sich das Objekt selbst ändert.
+%    % todo: besser formulieren
+%  \end{block}
+%
+%  \begin{block}{Kurzbeschreibung}
+%    Schnittstellen anlegen, um Abhängigkeiten zwischen Objekten registriert
+%    werden können, und um die abhängigen Objekte über Zustandsänderungen zu
+%    informieren.
+%    % todo: Formulierung überdenken
+%  \end{block}
+%
+%}
 
 
 \subsection{Beispiele}
@@ -291,11 +296,70 @@
 
 \subsection{Erweiterungen}
 % Erweiterungen, verbleibende Probleme, Kompromisse beim Design
-\frame{ \frametitle{}
+\frame{ \frametitle{Mögliche Erweiterungen}
+
+  \begin{block}{Ein Observer und mehrere Subjects}
+    \begin{itemize}
+      \item Der Name des Subjects muss mitgesendet werden.
+    \end{itemize}
+  \end{block}
+
+  \begin{block}{Nur für bestimmte Informationen anmelden}
+    \begin{itemize}
+      \item Oberservers melden sich nur für bestimmte Informationen an
+      \item Es werden weniger uninteressante Updates gesendet
+    \end{itemize}
+  \end{block}
+
+  \begin{block}{UpdateManager}
+    \begin{itemize}
+      \item Bei komplexen Update-Zusammenhängen empfehlenswert
+      \item vermittelt zwischen Subject und Observer
+      \item Mehr dazu in der Ausarbeitung
+    \end{itemize}
+  \end{block}
+
+}
+
 
-  \begin{block}{}
+%\frame{ \frametitle{Wer ruft notify() auf?}
+%
+%  \begin{block}{Das Subject}
+%    \begin{itemize}
+%      \item[+] notify() wird sicher bei jedem setState() aufgerufen
+%      \item[-] hohe Update-Kosten bei Änderungen en-block
+%    \end{itemize}
+%  \end{block}
+%
+%  \begin{block}{Der Observer}
+%    \begin{itemize}
+%      \item[+] intelligenter Zeitpunkt des notify()-Aufrufs möglich
+%      \item[-] der Client darf den notify()-Aufruf nicht vergessen
+%    \end{itemize}
+%  \end{block}
+%
+%}
+
+
+
+\subsection{Code}
+% Kein Code!
+\frame{ \frametitle{Code? --- Nein, kein Code!}
+
+  \begin{block}{Denn}
+    \begin{center}
+    \textbf{ Implementierungen sind Schall und Rauch,\\
+    Konzepte dagegen bleiben bestehen!  }
+    \end{center}
   \end{block}
 
+  \vspace{4ex}
+  {\scriptsize 
+  \begin{block}{Aber}
+    Beispiel-Implementierung in der Ausarbeitung.
+  \end{block}
+  }
+
 }
 
 
@@ -322,39 +386,39 @@
 }
 
 
-\section{Fragen}
-\frame{ \frametitle{Fragen?}
-  \vspace{5ex}
-  \centerline{\huge ?}
-}
+%\section{Fragen}
+%\frame{ \frametitle{Fragen?}
+%  \vspace{5ex}
+%  \centerline{\huge ?}
+%}
 
 
 % Erklaerung des Vorgehens
 % Frage: war es erfolgreich?
-\frame{ \frametitle{}
-
-  \begin{block}{}
-  \end{block}
-
-}
+%\frame{ \frametitle{}
+%
+%  \begin{block}{}
+%  \end{block}
+%
+%}
 
 
-\frame{ \frametitle{Abschließend}
-  \begin{block}{Verwendete Software}
-  \begin{itemize}
-    \item Debian GNU/Linux
-    \item \LaTeX-Beamer und \texttt{pdflatex}
-    \item Vim
-    \item qiv und ImageMagick
-    \item Mercurial
-  \end{itemize}
-  \end{block}
-
-  \begin{block}{}
-    \vspace{3ex}
-    \centerline{\textbf{Danke für eure Aufmerksamkeit}}
-  \end{block}
-}
+%\frame{ \frametitle{Abschließend}
+%  \begin{block}{Verwendete Software}
+%  \begin{itemize}
+%    \item Debian GNU/Linux
+%    \item \LaTeX-Beamer und \texttt{pdflatex}
+%    \item Vim
+%    \item qiv und ImageMagick
+%    \item Mercurial
+%  \end{itemize}
+%  \end{block}
+%
+%  \begin{block}{}
+%    \vspace{3ex}
+%    \centerline{\textbf{Danke für eure Aufmerksamkeit}}
+%  \end{block}
+%}
 
 
 % Code (Beispiel-Implementierung)
Binary file pics/observer-interaction_big.png has changed