docs/DesignPatterns

diff detailed-observer.tex @ 32:3d6e01222e28

added content
author meillo@marmaro.de
date Mon, 06 Aug 2007 02:25:32 +0200
parents f567cec0d755
children 97b57d24fd7b
line diff
     1.1 --- a/detailed-observer.tex	Sat Aug 04 17:47:00 2007 +0200
     1.2 +++ b/detailed-observer.tex	Mon Aug 06 02:25:32 2007 +0200
     1.3 @@ -306,12 +306,12 @@
     1.4    
     1.5  
     1.6    \paragraph{Zweck}
     1.7 -    Abhängigkeiten zwischen Objekten zu erstellen, sodass sich abhängige Objekte ändern, wenn sich das Objekt selbst ändert.
     1.8 +    Abhängigkeiten zwischen Objekten erstellen, sodass sich abhängige Objekte ändern, wenn sich das Objekt selbst ändert.
     1.9      % todo: besser formulieren
    1.10    
    1.11  
    1.12    \paragraph{Kurzbeschreibung}
    1.13 -    Schnittstellen anlegen, um Abhängigkeiten zwischen Objekten registriert
    1.14 +    Schnittstellen anlegen, damit Abhängigkeiten zwischen Objekten registriert
    1.15      werden können, und um die abhängigen Objekte über Zustandsänderungen zu
    1.16      informieren.
    1.17      % todo: Formulierung überdenken
    1.18 @@ -351,22 +351,15 @@
    1.19    
    1.20  
    1.21    \subsubsection{Nur für bestimmte Informationen anmelden}
    1.22 -  Eine weitere kleine Erweiterung ist die Anmeldung am Subject für nur bestimmte Informationen. Dies ist sicher auch eine Ergänzung die unsere Pinnwand verbesser hätte. So wäre es dann möglich gewesen sich nur für Zimmerangebote oder ähnliches anzumelden.
    1.23 -    \item Oberservers melden sich nur für bestimmte Informationen an
    1.24 -    \item Es werden weniger uninteressante Updates gesendet
    1.25 +  Eine weitere kleine Erweiterung ist die Anmeldung am Subject für nur bestimmte Informationen. Dies ist sicher auch eine Ergänzung die unsere Pinnwand verbesser hätte. So wäre es dann möglich gewesen sich nur für Zimmerangebote oder ähnliches anzumelden. So werden auch die unnötigen Updates verringert, was positiv auf die Performance wirken kann.
    1.26    
    1.27  
    1.28 -  \subsubsection{UpdateManager}
    1.29 -  \begin{itemize}
    1.30 -    \item Bei komplexen Update-Zusammenhängen empfehlenswert
    1.31 -    \item vermittelt zwischen Subject und Observer
    1.32 -    \item (Mehr dazu in der Ausarbeitung)
    1.33 -  \end{itemize}
    1.34 +  \subsubsection{ChangeManager}
    1.35 +  Bei komplexen Update-Zusammenhängen ist es empfehlenswert einen ChangeManager zwischen die verschiedenen Subjects und Observers zu stellen. Dieser vermittelt dann zwischen den Beteiligten und koordiniert die Update-Vorgänge. Der ChangeManager ist eine Instanz vom Mediator-Pattern und üblicherweise Singleton, da normalerweise nur einer für alle Observer-Beziehungen verwendet wird.
    1.36    
    1.37  
    1.38 -
    1.39 -
    1.40    \subsubsection{Wer ruft notify() auf?}
    1.41 +  Dies kommt stark auf das Programm an. Beide Alternativen haben ihre Vor- und Nachteile:
    1.42  
    1.43      \paragraph{Das Subject}
    1.44      \begin{itemize}
    1.45 @@ -393,17 +386,6 @@
    1.46  
    1.47  
    1.48  
    1.49 -
    1.50 -
    1.51 -
    1.52 -
    1.53 -
    1.54 -
    1.55 -
    1.56 -
    1.57 -
    1.58 -
    1.59 -
    1.60  \newpage
    1.61  \section{Zusammenfassung}
    1.62   %\textbf{Zusammenfassend}
    1.63 @@ -418,12 +400,7 @@
    1.64  
    1.65  
    1.66  
    1.67 - Erklaerung des Vorgehens
    1.68 - Frage: war es erfolgreich?
    1.69 - \textbf{}
    1.70  
    1.71 -  \paragraph{}
    1.72 -  
    1.73  
    1.74  
    1.75  
    1.76 @@ -431,17 +408,12 @@
    1.77    \paragraph{Verwendete Software}
    1.78    \begin{itemize}
    1.79      \item Debian GNU/Linux
    1.80 -    \item \LaTeX-Beamer und \texttt{pdflatex}
    1.81 +    \item \texttt{pdflatex}
    1.82      \item Vim
    1.83      \item qiv und ImageMagick
    1.84      \item Mercurial
    1.85    \end{itemize}
    1.86 -  
    1.87  
    1.88 -  \paragraph{}
    1.89 -    \vspace{3ex}
    1.90 -    \centerline{\textbf{Danke für eure Aufmerksamkeit}}
    1.91 -  
    1.92  
    1.93  
    1.94  
    1.95 @@ -452,20 +424,7 @@
    1.96  \appendix
    1.97  
    1.98  \section{Code}
    1.99 - \textbf{Code? --- Nein, kein Code!}
   1.100 -  \paragraph{Denn}
   1.101 -    \begin{center}
   1.102 -    \textbf{ Implementierungen sind Schall und Rauch,\\
   1.103 -    Konzepte dagegen bleiben bestehen!  }
   1.104 -    \end{center}
   1.105 -  
   1.106 -
   1.107 -  \vspace{4ex}
   1.108 -  {\scriptsize 
   1.109 -  \paragraph{}
   1.110 -    \textit{ Beispiel-Implementierung in der Ausarbeitung. }
   1.111 -  
   1.112 -  }
   1.113 +  \textbf{ Implementierungen sind Schall und Rauch,\\ Konzepte dagegen bleiben bestehen!  }
   1.114  
   1.115  
   1.116