0
|
1 % @file
|
|
2 % @brief Referat DesignPattern `Observer'
|
|
3 % @author markus schnalke <meillo@marmaro.de>
|
|
4 % @since 2007-05-30
|
|
5
|
|
6
|
|
7 \documentclass{beamer}
|
|
8
|
|
9
|
|
10 \usepackage[T1]{fontenc}
|
|
11 \usepackage[latin1]{inputenc}
|
|
12 \usepackage{ngerman}
|
|
13 \usepackage{graphicx}
|
|
14 \usepackage[automark]{scrpage2}
|
|
15 \input{Style01}
|
|
16
|
|
17
|
|
18
|
|
19 \begin{document}
|
|
20
|
|
21
|
|
22 \title{Design Pattern ``Observer''}
|
|
23 \date{\today}
|
|
24
|
|
25 \author{Markus Schnalke}
|
|
26
|
|
27 %\titlegraphic{\includegraphics[width=3cm]{Pics/Maka-Logo.png}}
|
|
28
|
|
29 \frame{
|
|
30 \titlepage
|
|
31 }
|
|
32
|
|
33
|
|
34
|
|
35
|
|
36
|
|
37 \section[Outline]{}
|
|
38 \frame{
|
|
39 Dauer der Präsentation: etwa 10 Minuten
|
|
40 \vspace{2ex}
|
|
41
|
|
42 \tableofcontents
|
|
43 }
|
|
44
|
|
45
|
|
46
|
|
47
|
3
|
48 \section{Vorgehensweise}
|
|
49
|
|
50 \frame{ \frametitle{Von der anderen Seite}
|
0
|
51
|
3
|
52 \begin{block}{Gründe}
|
|
53 Design Pattern sind so etwas wie ``Best Practices'' (also bewährte
|
|
54 Vorgehensweisen), oft \textbf{nach Vorbildern in der Wirklichkeit}
|
|
55 \end{block}
|
|
56 \pause
|
|
57 \begin{block}{Meine Vorgehensweise}
|
|
58 Ich will nun anhand eines Beispiels aus dem täglichen Leben zeigen, dass
|
|
59 das Design Pattern ``Observer'' ein absolut natürliches Vorgehen ist, das
|
|
60 bei ähnlichen Situationen in Programmen deshalb ebenso verwendet werden
|
|
61 sollte.
|
|
62 \end{block}
|
0
|
63
|
3
|
64 % todo: Mehr und ausführlicher; Verweis auf nach dem Vortrag
|
|
65
|
|
66 }
|
|
67
|
|
68
|
|
69 \section{Erarbeitung des Observers}
|
|
70
|
|
71 \frame{ \frametitle{Ein Beispiel}
|
|
72
|
|
73 \begin{block}{Die Situation}
|
0
|
74 \begin{itemize}
|
3
|
75 \item Personen die verkaufen möchten
|
|
76 \item Personen die kaufen möchten
|
|
77 \item Sie wollen/sollen sich nicht kennen
|
|
78 \item Möglichst effektives Vorgehen
|
0
|
79 \end{itemize}
|
|
80 \end{block}
|
|
81 \pause
|
3
|
82 \begin{block}{Vorschläge?}
|
0
|
83 \begin{itemize}
|
|
84 \item
|
|
85 \item
|
|
86 \end{itemize}
|
|
87 \end{block}
|
|
88
|
|
89 }
|
|
90
|
|
91
|
3
|
92 \frame{ \frametitle{Ansatz}
|
0
|
93
|
3
|
94 \begin{block}{Mögliche Vorgehen}
|
0
|
95 \begin{itemize}
|
3
|
96 \item Personen direkt ansprechen
|
|
97 \item Laut in die Menge rufen
|
|
98 \item Den Freunden erzählen, die es dann weitererzählen
|
0
|
99 \end{itemize}
|
3
|
100 \end{block}
|
|
101
|
|
102 \pause
|
|
103
|
|
104 \begin{block}{Probleme}
|
|
105 \begin{itemize}
|
|
106 \item Man weiß nicht wer Interesse hat
|
|
107 \item nicht mal wieviele
|
|
108 \item Manche Interessenten sind vielleicht nur zu bestimmten Zeiten da
|
|
109 \item ... oder sie sind taub
|
|
110 \end{itemize}
|
|
111 \end{block}
|
|
112
|
|
113 }
|
|
114
|
|
115
|
|
116 \frame{ \frametitle{Eine (gute) Lösung: Pinnwand}
|
|
117
|
|
118 \begin{block}{Funktionsweise}
|
|
119 \begin{itemize}
|
|
120 \item Man kann Zettel anpinnen
|
|
121 \item Hingehen und nach neuen Zetteln schauen
|
|
122 \item Zettel lesen
|
|
123 \item Zettel abnehmen
|
|
124 \item Jeder der ein paar Fähigkeiten hat kann es
|
|
125 \end{itemize}
|
|
126 \end{block}
|
|
127
|
|
128 \pause
|
|
129
|
|
130 \begin{block}{Probleme}
|
|
131 \begin{itemize}
|
|
132 \item Man muss hingehen, nur um festzustellen, dass nichts Neues dabei ist
|
|
133 \item Man kann wichtige Zettel verpassen
|
|
134 \item Zettel sollten nicht weggenommen werden können
|
|
135 \end{itemize}
|
|
136 \end{block}
|
0
|
137
|
|
138 }
|
|
139
|
|
140
|
|
141
|
|
142
|
3
|
143 \frame{ \frametitle{Verbesserung: Pinnup-Sekretärin}
|
|
144
|
|
145 \begin{block}{Lösung}
|
|
146 \begin{itemize}
|
|
147 \item Durch Studiengebühren wird eine Sekretärin für die Pinnwand angestellt
|
|
148 \item Pinnwand und Sekretärin sind fortan eine Einheit
|
|
149 \item Man kann bei ihr einen Zettel in Auftrag geben (auch telefonisch)
|
|
150 \item (Sie schreibt mit lesbarer Schrift)
|
|
151 \item Sie verhindert, dass Zettel abgenommen werden
|
|
152 \end{itemize}
|
|
153 \end{block}
|
|
154
|
|
155 \pause
|
|
156
|
|
157 \begin{block}{Bestehendes Problem}
|
|
158 \begin{itemize}
|
|
159 \item Man läuft immer noch oft unnötig zur Pinnwand
|
|
160 \end{itemize}
|
|
161 \end{block}
|
|
162
|
0
|
163 }
|
|
164
|
|
165
|
3
|
166 \frame{ \frametitle{2. Verbesserung: Pinnwand-Sekretärin mit Benachrichtigung}
|
0
|
167
|
3
|
168 \begin{block}{Lösung}
|
|
169 \begin{itemize}
|
|
170 \item Durch Studiengebühren wird eine längere Arbeitszeit der Sekretärin finanziert
|
|
171 \item Man kann sich bei der Sekretärin nun als ``Interessierter'' registrieren
|
|
172 \item Die Sekretärin trägt die Telefonnummer in eine Liste ein
|
|
173 \item Fortan ruft sie alle Personen der Liste an, wenn sie einen neuen Zettel anpinnt
|
|
174 \end{itemize}
|
|
175 \end{block}
|
|
176
|
|
177 }
|
|
178
|
|
179
|
|
180 % Zusammenfassung des Beispiels: Was haben wir, ist alles abgedeckt
|
|
181 % Frage: Sind die Zuhörer zufrieden? Ist die Lösung gut?
|
|
182
|
|
183
|
|
184 \section{Nun zum Pattern}
|
|
185
|
|
186 \frame { \frametitle{UML-Diagramm des Observers}
|
|
187 \includegraphics[width=20em]{pics/observer.png}
|
|
188 }
|
|
189
|
|
190
|
|
191 % Daten aus der Beschreibung des Observers von GoF
|
|
192 % in welche Gruppen wird er eingeordnet
|
|
193
|
|
194
|
|
195 % Einsatzgebiete (MVC) und RL (Mailingslisten, Ebay-Suchabo)
|
|
196 % nicht aber (Blog + RSS)
|
|
197
|
|
198
|
|
199 % Erweiterungen, verbleibende Probleme, Kompromisse beim Design
|
|
200
|
|
201
|
|
202 % Erklärung des Vorgehens
|
|
203 % Frage: war es erfolgreich?
|
|
204
|
|
205
|
|
206
|
|
207 \section{Zusammenfassung}
|
0
|
208 \frame{ \frametitle{Zusammenfassend}
|
3
|
209 \begin{block}{Zusammenfassung}
|
0
|
210 \begin{itemize}
|
|
211 \item
|
|
212 \item
|
|
213 \item
|
|
214 \end{itemize}
|
|
215 \end{block}
|
|
216
|
|
217 \pause
|
|
218
|
3
|
219 \begin{block}{Fazit}
|
|
220 \begin{itemize}
|
|
221 \item
|
|
222 \item
|
|
223 \item
|
|
224 \end{itemize}
|
0
|
225 \end{block}
|
|
226 }
|
|
227
|
|
228
|
|
229 \section{Fragen}
|
|
230 \frame{ \frametitle{Fragen?}
|
|
231 \vspace{5ex}
|
|
232 \centerline{\huge ?}
|
|
233 }
|
|
234
|
|
235
|
|
236 \frame{ \frametitle{Abschließend}
|
|
237 \begin{block}{Verwendete Software}
|
|
238 \begin{itemize}
|
|
239 \item Debian GNU/Linux
|
|
240 \item \LaTeX-Beamer und \texttt{pdflatex}
|
|
241 \item Vim
|
3
|
242 \item qiv und ImageMagick
|
0
|
243 \end{itemize}
|
|
244 \end{block}
|
|
245
|
|
246 \begin{block}{}
|
|
247 \vspace{3ex}
|
|
248 \centerline{\textbf{Danke für eure Aufmerksamkeit}}
|
|
249 \end{block}
|
|
250 }
|
|
251
|
|
252
|
3
|
253 % Code (Beispiel-Implementierung)
|
|
254
|
|
255
|
0
|
256
|
|
257 \end{document}
|
3
|
258
|
|
259
|
|
260
|
|
261
|
|
262
|
|
263
|
|
264 %\subsubsection{Fehlteilmanagement}
|
|
265 %\frame{ \frametitle{Fehlteilmanagement}
|
|
266 % %\includegraphics[width=10cm]{Pics/cc.png}
|
|
267 %}
|
|
268
|
|
269 % \vspace{2ex}
|