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