docs/DesignPatterns

changeset 3:0923f2ae50a5

added lots of text modified Makefile to call xpdf with -fullscreen
author meillo@marmaro.de
date Fri, 01 Jun 2007 17:47:47 +0200
parents 961cb2d9b1b5
children ba98bb97db06
files .hgignore Makefile main.tex pics/observer.png
diffstat 4 files changed, 157 insertions(+), 34 deletions(-) [+]
line diff
     1.1 --- a/.hgignore	Wed May 30 12:40:26 2007 +0200
     1.2 +++ b/.hgignore	Fri Jun 01 17:47:47 2007 +0200
     1.3 @@ -5,3 +5,4 @@
     1.4  *.out
     1.5  *.snm
     1.6  *.toc
     1.7 +push.sh
     2.1 --- a/Makefile	Wed May 30 12:40:26 2007 +0200
     2.2 +++ b/Makefile	Fri Jun 01 17:47:47 2007 +0200
     2.3 @@ -16,7 +16,7 @@
     2.4  
     2.5  xpdf: ${OBJ}
     2.6  	@echo xpdf $@
     2.7 -	@xpdf -z page ${OBJ}
     2.8 +	@xpdf -fullscreen -z page ${OBJ}
     2.9  	@rm ${OBJ}
    2.10  
    2.11  clean:
     3.1 --- a/main.tex	Wed May 30 12:40:26 2007 +0200
     3.2 +++ b/main.tex	Fri Jun 01 17:47:47 2007 +0200
     3.3 @@ -45,23 +45,41 @@
     3.4  
     3.5  
     3.6  
     3.7 -\section{Überblick}
     3.8 +\section{Vorgehensweise}
     3.9  
    3.10 -\frame{ \frametitle{Grundlegendes zum Observer}
    3.11 +\frame{ \frametitle{Von der anderen Seite}
    3.12  
    3.13 -  \begin{block}{aa}
    3.14 +  \begin{block}{Gründe}
    3.15 +    Design Pattern sind so etwas wie ``Best Practices'' (also bewährte
    3.16 +    Vorgehensweisen), oft \textbf{nach Vorbildern in der Wirklichkeit}
    3.17 +  \end{block}
    3.18 +  \pause
    3.19 +  \begin{block}{Meine Vorgehensweise}
    3.20 +    Ich will nun anhand eines Beispiels aus dem täglichen Leben zeigen, dass
    3.21 +    das Design Pattern ``Observer'' ein absolut natürliches Vorgehen ist, das
    3.22 +    bei ähnlichen Situationen in Programmen deshalb ebenso verwendet werden
    3.23 +    sollte.
    3.24 +  \end{block}
    3.25 +
    3.26 +  % todo: Mehr und ausführlicher; Verweis auf nach dem Vortrag
    3.27 +
    3.28 +}
    3.29 +
    3.30 +
    3.31 +\section{Erarbeitung des Observers}
    3.32 +
    3.33 +\frame{ \frametitle{Ein Beispiel}
    3.34 +
    3.35 +  \begin{block}{Die Situation}
    3.36      \begin{itemize}
    3.37 -      \item 
    3.38 -      \item 
    3.39 -      \item 
    3.40 -      \item 
    3.41 -      \item 
    3.42 +      \item Personen die verkaufen möchten
    3.43 +      \item Personen die kaufen möchten
    3.44 +      \item Sie wollen/sollen sich nicht kennen
    3.45 +      \item Möglichst effektives Vorgehen
    3.46      \end{itemize}
    3.47    \end{block}
    3.48 -
    3.49    \pause
    3.50 -
    3.51 -  \begin{block}{bb}
    3.52 +  \begin{block}{Vorschläge?}
    3.53      \begin{itemize}
    3.54        \item 
    3.55        \item 
    3.56 @@ -71,33 +89,124 @@
    3.57  }
    3.58  
    3.59  
    3.60 +\frame{ \frametitle{Ansatz}
    3.61  
    3.62 -\section{Ansatz}
    3.63 +  \begin{block}{Mögliche Vorgehen}
    3.64 +  \begin{itemize}
    3.65 +    \item Personen direkt ansprechen
    3.66 +    \item Laut in die Menge rufen
    3.67 +    \item Den Freunden erzählen, die es dann weitererzählen
    3.68 +  \end{itemize}
    3.69 +  \end{block}
    3.70  
    3.71 -\frame{ \frametitle{Bezug zum RL}
    3.72 +  \pause
    3.73  
    3.74 -  \begin{itemize}
    3.75 -    \item 
    3.76 -    \item 
    3.77 -    \item 
    3.78 -    \item 
    3.79 -  \end{itemize}
    3.80 +  \begin{block}{Probleme}
    3.81 +    \begin{itemize}
    3.82 +      \item Man weiß nicht wer Interesse hat
    3.83 +      \item nicht mal wieviele
    3.84 +      \item Manche Interessenten sind vielleicht nur zu bestimmten Zeiten da
    3.85 +      \item ... oder sie sind taub
    3.86 +    \end{itemize}
    3.87 +  \end{block}
    3.88  
    3.89  }
    3.90  
    3.91  
    3.92 +\frame{ \frametitle{Eine (gute) Lösung: Pinnwand}
    3.93  
    3.94 +  \begin{block}{Funktionsweise}
    3.95 +  \begin{itemize}
    3.96 +    \item Man kann Zettel anpinnen
    3.97 +    \item Hingehen und nach neuen Zetteln schauen
    3.98 +    \item Zettel lesen
    3.99 +    \item Zettel abnehmen
   3.100 +    \item Jeder der ein paar Fähigkeiten hat kann es
   3.101 +  \end{itemize}
   3.102 +  \end{block}
   3.103  
   3.104 -\subsubsection{Fehlteilmanagement}
   3.105 -\frame{ \frametitle{Fehlteilmanagement}
   3.106 -  %\includegraphics[width=10cm]{Pics/cc.png}
   3.107 +  \pause
   3.108 +
   3.109 +  \begin{block}{Probleme}
   3.110 +    \begin{itemize}
   3.111 +      \item Man muss hingehen, nur um festzustellen, dass nichts Neues dabei ist
   3.112 +      \item Man kann wichtige Zettel verpassen
   3.113 +      \item Zettel sollten nicht weggenommen werden können
   3.114 +    \end{itemize}
   3.115 +  \end{block}
   3.116 +
   3.117  }
   3.118  
   3.119  
   3.120  
   3.121 -\section{Fazit und Dank}
   3.122 +
   3.123 +\frame{ \frametitle{Verbesserung: Pinnup-Sekretärin}
   3.124 +
   3.125 +  \begin{block}{Lösung}
   3.126 +  \begin{itemize}
   3.127 +    \item Durch Studiengebühren wird eine Sekretärin für die Pinnwand angestellt
   3.128 +    \item Pinnwand und Sekretärin sind fortan eine Einheit
   3.129 +    \item Man kann bei ihr einen Zettel in Auftrag geben (auch telefonisch)
   3.130 +    \item (Sie schreibt mit lesbarer Schrift)
   3.131 +    \item Sie verhindert, dass Zettel abgenommen werden
   3.132 +  \end{itemize}
   3.133 +  \end{block}
   3.134 +
   3.135 +  \pause
   3.136 +
   3.137 +  \begin{block}{Bestehendes Problem}
   3.138 +    \begin{itemize}
   3.139 +      \item Man läuft immer noch oft unnötig zur Pinnwand
   3.140 +    \end{itemize}
   3.141 +  \end{block}
   3.142 +
   3.143 +}
   3.144 +
   3.145 +
   3.146 +\frame{ \frametitle{2. Verbesserung: Pinnwand-Sekretärin mit Benachrichtigung}
   3.147 +
   3.148 +  \begin{block}{Lösung}
   3.149 +  \begin{itemize}
   3.150 +    \item Durch Studiengebühren wird eine längere Arbeitszeit der Sekretärin finanziert
   3.151 +    \item Man kann sich bei der Sekretärin nun als ``Interessierter'' registrieren
   3.152 +    \item Die Sekretärin trägt die Telefonnummer in eine Liste ein
   3.153 +    \item Fortan ruft sie alle Personen der Liste an, wenn sie einen neuen Zettel anpinnt
   3.154 +  \end{itemize}
   3.155 +  \end{block}
   3.156 +
   3.157 +}
   3.158 +
   3.159 +
   3.160 +% Zusammenfassung des Beispiels: Was haben wir, ist alles abgedeckt
   3.161 +% Frage: Sind die Zuhörer zufrieden? Ist die Lösung gut?
   3.162 +
   3.163 +
   3.164 +\section{Nun zum Pattern}
   3.165 +
   3.166 +\frame { \frametitle{UML-Diagramm des Observers}
   3.167 +    \includegraphics[width=20em]{pics/observer.png}
   3.168 +}
   3.169 +
   3.170 +
   3.171 +% Daten aus der Beschreibung des Observers von GoF
   3.172 +% in welche Gruppen wird er eingeordnet
   3.173 +
   3.174 +
   3.175 +% Einsatzgebiete (MVC) und RL (Mailingslisten, Ebay-Suchabo)
   3.176 +% nicht aber (Blog + RSS)
   3.177 +
   3.178 +
   3.179 +% Erweiterungen, verbleibende Probleme, Kompromisse beim Design
   3.180 +
   3.181 +
   3.182 +% Erklärung des Vorgehens
   3.183 +% Frage: war es erfolgreich?
   3.184 +
   3.185 +
   3.186 +
   3.187 +\section{Zusammenfassung}
   3.188  \frame{ \frametitle{Zusammenfassend}
   3.189 -  \begin{block}{Fazit}
   3.190 +  \begin{block}{Zusammenfassung}
   3.191    \begin{itemize}
   3.192      \item 
   3.193      \item 
   3.194 @@ -107,20 +216,18 @@
   3.195  
   3.196    \pause
   3.197  
   3.198 -  \begin{block}{Dank}
   3.199 -    \vspace{2ex}
   3.200 -
   3.201 -    \begin{center}
   3.202 -    Vielen Dank\\
   3.203 -    \textbf{dd}
   3.204 -    \end{center}
   3.205 +  \begin{block}{Fazit}
   3.206 +    \begin{itemize}
   3.207 +      \item 
   3.208 +      \item 
   3.209 +      \item 
   3.210 +    \end{itemize}
   3.211    \end{block}
   3.212  }
   3.213  
   3.214  
   3.215  \section{Fragen}
   3.216  \frame{ \frametitle{Fragen?}
   3.217 -
   3.218    \vspace{5ex}
   3.219    \centerline{\huge ?}
   3.220  }
   3.221 @@ -132,7 +239,7 @@
   3.222      \item Debian GNU/Linux
   3.223      \item \LaTeX-Beamer und \texttt{pdflatex}
   3.224      \item Vim
   3.225 -    \item gThumb, GIMP und qiv
   3.226 +    \item qiv und ImageMagick
   3.227    \end{itemize}
   3.228    \end{block}
   3.229  
   3.230 @@ -143,5 +250,20 @@
   3.231  }
   3.232  
   3.233  
   3.234 +% Code (Beispiel-Implementierung)
   3.235 +
   3.236 +
   3.237  
   3.238  \end{document}
   3.239 +
   3.240 +
   3.241 +
   3.242 +
   3.243 +
   3.244 +
   3.245 +%\subsubsection{Fehlteilmanagement}
   3.246 +%\frame{ \frametitle{Fehlteilmanagement}
   3.247 +%  %\includegraphics[width=10cm]{Pics/cc.png}
   3.248 +%}
   3.249 +
   3.250 +% \vspace{2ex}
     4.1 Binary file pics/observer.png has changed