comparison observer.tex @ 9:d7c3983a367a

convertion to utf8
author meillo@marmaro.de
date Tue, 19 Jun 2007 16:44:59 +0200
parents 7744082fd6a3
children 3f937af7e13e
comparison
equal deleted inserted replaced
8:c9e5dcd79aae 9:d7c3983a367a
34 34
35 35
36 36
37 \section[Outline]{} 37 \section[Outline]{}
38 \frame{ 38 \frame{
39 Dauer der Präsentation: etwa 10 Minuten
40 \vspace{2ex}
41
42 \tableofcontents 39 \tableofcontents
43 } 40 }
44 41
45 42
46 43
47 44
48 \section{Vorgehensweise} 45 \section{Vorgehensweise}
49 46
50 \frame{ \frametitle{Von der anderen Seite} 47 \frame{ \frametitle{Von der anderen Seite}
51 48
52 \begin{block}{Gründe} 49 \begin{block}{Gründe}
53 Design Pattern sind so etwas wie ``Best Practices'' (also bewährte 50 Design Pattern sind so etwas wie ``Best Practices'' (also bewährte
54 Vorgehensweisen), oft \textbf{nach Vorbildern in der Wirklichkeit} 51 Vorgehensweisen), oft \textbf{nach Vorbildern in der Wirklichkeit}
55 \end{block} 52 \end{block}
56 \pause 53 \pause
57 \begin{block}{Meine Vorgehensweise} 54 \begin{block}{Meine Vorgehensweise}
58 Ich will nun anhand eines Beispiels aus dem täglichen Leben zeigen, dass 55 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 56 das Design Pattern ``Observer'' ein absolut natürliches Vorgehen ist, das
60 bei ähnlichen Situationen in Programmen deshalb ebenso verwendet werden 57 bei ähnlichen Situationen in Programmen deshalb ebenso verwendet werden
61 sollte. 58 sollte.
62 \end{block} 59 \end{block}
63 60
64 % todo: Mehr und ausführlicher; Verweis auf nach dem Vortrag 61 % todo: Mehr und ausführlicher; Verweis auf nach dem Vortrag
65 62
66 } 63 }
67 64
68 65
69 \section{Erarbeitung des Observers} 66 \section{Erarbeitung des Observers}
70 67
71 \frame{ \frametitle{Ein Beispiel} 68 \frame{ \frametitle{Ein Beispiel}
72 69
73 \begin{block}{Die Situation} 70 \begin{block}{Die Situation}
74 \begin{itemize} 71 \begin{itemize}
75 \item Personen die verkaufen möchten 72 \item Personen die verkaufen möchten
76 \item Personen die kaufen möchten 73 \item Personen die kaufen möchten
77 \item Sie wollen/sollen sich nicht kennen 74 \item Sie wollen/sollen sich nicht kennen
78 \item Möglichst effektives Vorgehen 75 \item Möglichst effektives Vorgehen
79 \end{itemize} 76 \end{itemize}
80 \end{block} 77 \end{block}
81 \pause 78 \pause
82 \begin{block}{Vorschläge?} 79 \begin{block}{Vorschläge?}
83 \begin{itemize} 80 \begin{itemize}
84 \item 81 \item
85 \item 82 \item
86 \end{itemize} 83 \end{itemize}
87 \end{block} 84 \end{block}
90 87
91 88
92 \subsection{Ansatz} 89 \subsection{Ansatz}
93 \frame{ \frametitle{Ansatz} 90 \frame{ \frametitle{Ansatz}
94 91
95 \begin{block}{Mögliche Vorgehen} 92 \begin{block}{Mögliche Vorgehen}
96 \begin{itemize} 93 \begin{itemize}
97 \item Personen direkt ansprechen 94 \item Personen direkt ansprechen
98 \item Laut in die Menge rufen 95 \item Laut in die Menge rufen
99 \item Den Freunden erzählen, die es dann weitererzählen 96 \item Den Freunden erzählen, die es dann weitererzählen
100 \end{itemize} 97 \end{itemize}
101 \end{block} 98 \end{block}
102 99
103 \pause 100 \pause
104 101
105 \begin{block}{Probleme} 102 \begin{block}{Probleme}
106 \begin{itemize} 103 \begin{itemize}
107 \item Man weiß nicht wer Interesse hat 104 \item Man weiß nicht wer Interesse hat
108 \item nicht mal wieviele 105 \item nicht mal wieviele
109 \item Manche Interessenten sind vielleicht nur zu bestimmten Zeiten da 106 \item Manche Interessenten sind vielleicht nur zu bestimmten Zeiten da
110 \item ... oder sie sind taub 107 \item ... oder sie sind taub
111 \end{itemize} 108 \end{itemize}
112 \end{block} 109 \end{block}
113 110
114 } 111 }
115 112
116 113
117 114
118 \subsection{Erarbeitung einer Lösung} 115 \subsection{Erarbeitung einer Lösung}
119 116
120 \frame{ \frametitle{Eine (gute) Lösung: Pinnwand} 117 \frame{ \frametitle{Eine (gute) Lösung: Pinnwand}
121 118
122 \begin{block}{Funktionsweise} 119 \begin{block}{Funktionsweise}
123 \begin{itemize} 120 \begin{itemize}
124 \item Man kann Zettel anpinnen 121 \item Man kann Zettel anpinnen
125 \item Hingehen und nach neuen Zetteln schauen 122 \item Hingehen und nach neuen Zetteln schauen
126 \item Zettel lesen 123 \item Zettel lesen
127 \item Zettel abnehmen 124 \item Zettel abnehmen
128 \item Jeder der ein paar Fähigkeiten hat kann es 125 \item Jeder der ein paar Fähigkeiten hat kann es
129 \end{itemize} 126 \end{itemize}
130 \end{block} 127 \end{block}
131 128
132 \pause 129 \pause
133 130
134 \begin{block}{Probleme} 131 \begin{block}{Probleme}
135 \begin{itemize} 132 \begin{itemize}
136 \item Man muss hingehen, nur um festzustellen, dass nichts Neues dabei ist 133 \item Man muss hingehen, nur um festzustellen, dass nichts Neues dabei ist
137 \item Man kann wichtige Zettel verpassen 134 \item Man kann wichtige Zettel verpassen
138 \item Zettel sollten nicht weggenommen werden können 135 \item Zettel sollten nicht weggenommen werden können
139 \end{itemize} 136 \end{itemize}
140 \end{block} 137 \end{block}
141 138
142 } 139 }
143 140
144 141
145 142
146 143
147 \frame{ \frametitle{Verbesserung: Pinnwand-Sekretärin} 144 \frame{ \frametitle{Verbesserung: Pinnwand-Sekretärin}
148 145
149 \begin{block}{Lösung} 146 \begin{block}{Lösung}
150 \begin{itemize} 147 \begin{itemize}
151 \item Durch Studiengebühren wird eine Sekretärin für die Pinnwand angestellt 148 \item Durch Studiengebühren wird eine Sekretärin für die Pinnwand angestellt
152 \item Pinnwand und Sekretärin sind fortan eine Einheit 149 \item Pinnwand und Sekretärin sind fortan eine Einheit
153 \item Man kann bei ihr einen Zettel in Auftrag geben (auch telefonisch) 150 \item Man kann bei ihr einen Zettel in Auftrag geben (auch telefonisch)
154 \item (Sie schreibt mit lesbarer Schrift) 151 \item (Sie schreibt mit lesbarer Schrift)
155 \item Sie verhindert, dass Zettel abgenommen werden 152 \item Sie verhindert, dass Zettel abgenommen werden
156 \end{itemize} 153 \end{itemize}
157 \end{block} 154 \end{block}
158 155
159 \pause 156 \pause
160 157
161 \begin{block}{Bestehendes Problem} 158 \begin{block}{Bestehendes Problem}
162 \begin{itemize} 159 \begin{itemize}
163 \item Man läuft immer noch oft unnötig zur Pinnwand 160 \item Man läuft immer noch oft unnötig zur Pinnwand
164 \end{itemize} 161 \end{itemize}
165 \end{block} 162 \end{block}
166 163
167 } 164 }
168 165
169 166
170 \frame{ \frametitle{2. Verbesserung: Pinnup-Sekretärin mit Benachrichtigung} 167 \frame{ \frametitle{2. Verbesserung: Pinnup-Sekretärin mit Benachrichtigung}
171 168
172 \begin{block}{Lösung} 169 \begin{block}{Lösung}
173 \begin{itemize} 170 \begin{itemize}
174 \item Durch Studiengebühren wird eine längere Arbeitszeit der Sekretärin finanziert 171 \item Durch Studiengebühren wird eine längere Arbeitszeit der Sekretärin finanziert
175 \item Man kann sich bei der Sekretärin nun als ``Interessierter'' registrieren 172 \item Man kann sich bei der Sekretärin nun als ``Interessierter'' registrieren
176 \item Die Sekretärin trägt die Telefonnummer in eine Liste ein 173 \item Die Sekretärin trägt die Telefonnummer in eine Liste ein
177 \item Fortan ruft sie alle Personen der Liste an, wenn sie einen neuen Zettel anpinnt 174 \item Fortan ruft sie alle Personen der Liste an, wenn sie einen neuen Zettel anpinnt
178 \end{itemize} 175 \end{itemize}
179 \end{block} 176 \end{block}
180 177
181 } 178 }
182 179
183 180
184 \subsection{Zusammenfassung} 181 \subsection{Zusammenfassung}
185 182
186 % Zusammenfassung des Beispiels: Was haben wir, ist alles abgedeckt 183 % Zusammenfassung des Beispiels: Was haben wir, ist alles abgedeckt
187 % Frage: Sind die Zuhörer zufrieden? Ist die Lösung gut? 184 % Frage: Sind die Zuhörer zufrieden? Ist die Lösung gut?
188 \frame{ \frametitle{Zusammenfassung des Beispiels} 185 \frame{ \frametitle{Zusammenfassung des Beispiels}
189 186
190 \begin{block}{Pinnwand + Sekretärin + Benachrichtigung} 187 \begin{block}{Pinnwand + Sekretärin + Benachrichtigung}
191 \begin{itemize} 188 \begin{itemize}
192 \item Man kann neue Zettel anpinnen lassen 189 \item Man kann neue Zettel anpinnen lassen
193 \item Man kann sich als Interessierter anmelden (und auch abmelden) 190 \item Man kann sich als Interessierter anmelden (und auch abmelden)
194 \item Interessierte werden bei Änderungen der Pinnwand benachrichtigt 191 \item Interessierte werden bei Änderungen der Pinnwand benachrichtigt
195 \item Sie können dann zur Pinnwand gehen und sie sich anschauen 192 \item Sie können dann zur Pinnwand gehen und sie sich anschauen
196 \end{itemize} 193 \end{itemize}
197 \end{block} 194 \end{block}
198 195
199 \pause 196 \pause
200 197
201 \begin{block}{Eure Meinung?} 198 \begin{block}{Eure Meinung?}
202 \begin{itemize} 199 \begin{itemize}
203 \item Ist diese Struktur zufriedenstellend? 200 \item Ist diese Struktur zufriedenstellend?
204 \item Erfüllt sie alle Anforderungen? 201 \item Erfüllt sie alle Anforderungen?
205 \item Was fehlt? 202 \item Was fehlt?
206 \end{itemize} 203 \end{itemize}
207 \end{block} 204 \end{block}
208 205
209 } 206 }
214 211
215 212
216 \section{Nun zum Pattern} 213 \section{Nun zum Pattern}
217 214
218 215
219 \frame{ \frametitle{Überleitung} 216 \frame{ \frametitle{Überleitung}
220 217
221 \begin{block}{Neue Namen} 218 \begin{block}{Neue Namen}
222 \begin{itemize} 219 \begin{itemize}
223 \item Pinnwand-Sekretärin-Einheit -> ``Subject'' 220 \item Pinnwand-Sekretärin-Einheit -> ``Subject''
224 \item Die Zettel auf der Pinnwand -> ``subjectState'' 221 \item Die Zettel auf der Pinnwand -> ``subjectState''
225 \item Interessenten -> ``Observers'' 222 \item Interessenten -> ``Observers''
226 \end{itemize} 223 \end{itemize}
227 \end{block} 224 \end{block}
228 225
229 \pause 226 \pause
230 227
231 \begin{block}{Schnittstellen} 228 \begin{block}{Schnittstellen}
232 Die Fähigkeiten die Pinnwand/Sekretärin und Interessenten haben müssen um in diesem Schema korrekt zu funktionieren sind ihre ``Interfaces''. 229 Die Fähigkeiten die Pinnwand/Sekretärin und Interessenten haben müssen um in diesem Schema korrekt zu funktionieren sind ihre ``Interfaces''.
233 \end{block} 230 \end{block}
234 231
235 } 232 }
236 233
237 234
251 \begin{block}{Auch bekannt als} 248 \begin{block}{Auch bekannt als}
252 Publish-Subscribe, Dependents 249 Publish-Subscribe, Dependents
253 \end{block} 250 \end{block}
254 251
255 \begin{block}{Zweck} 252 \begin{block}{Zweck}
256 Abhängigkeiten zwischen Objekten zu erstellen, sodass sich abhängige Objekte ändern, wenn sich das Objekt selbst ändert. 253 Abhängigkeiten zwischen Objekten zu erstellen, sodass sich abhängige Objekte ändern, wenn sich das Objekt selbst ändert.
257 % todo: besser formulieren 254 % todo: besser formulieren
258 \end{block} 255 \end{block}
259 256
260 \begin{block}{Kurzbeschreibung} 257 \begin{block}{Kurzbeschreibung}
261 Schnittstellen anlegen, um Abhängigkeiten zwischen Objekten registriert 258 Schnittstellen anlegen, um Abhängigkeiten zwischen Objekten registriert
262 werden können, und um die abhängigen Objekte über Zustandsänderungen zu 259 werden können, und um die abhängigen Objekte über Zustandsänderungen zu
263 informieren. 260 informieren.
264 % todo: Formulierung überdenken 261 % todo: Formulierung überdenken
265 \end{block} 262 \end{block}
266 263
267 } 264 }
268 265
269 266
340 \end{block} 337 \end{block}
341 338
342 } 339 }
343 340
344 341
345 \frame{ \frametitle{Abschließend} 342 \frame{ \frametitle{Abschließend}
346 \begin{block}{Verwendete Software} 343 \begin{block}{Verwendete Software}
347 \begin{itemize} 344 \begin{itemize}
348 \item Debian GNU/Linux 345 \item Debian GNU/Linux
349 \item \LaTeX-Beamer und \texttt{pdflatex} 346 \item \LaTeX-Beamer und \texttt{pdflatex}
350 \item Vim 347 \item Vim
353 \end{itemize} 350 \end{itemize}
354 \end{block} 351 \end{block}
355 352
356 \begin{block}{} 353 \begin{block}{}
357 \vspace{3ex} 354 \vspace{3ex}
358 \centerline{\textbf{Danke für eure Aufmerksamkeit}} 355 \centerline{\textbf{Danke für eure Aufmerksamkeit}}
359 \end{block} 356 \end{block}
360 } 357 }
361 358
362 359
363 % Code (Beispiel-Implementierung) 360 % Code (Beispiel-Implementierung)