11
|
1 % @file
|
15
|
2 % @brief Referat DesignPatterns `Einführung'
|
11
|
3 % @author Markus Rundel
|
|
4 % @since 2007-06-21
|
|
5
|
|
6
|
|
7 \documentclass{beamer}
|
|
8
|
|
9 \usepackage[utf8]{inputenc}
|
|
10 \usepackage{ngerman}
|
|
11 \usepackage{graphicx}
|
|
12 \usepackage[automark]{scrpage2}
|
|
13 \input{Style01}
|
|
14
|
23
|
15 \title{Einführung}
|
|
16 \author{Markus Rundel}
|
|
17 \date{}
|
11
|
18
|
|
19
|
|
20 \begin{document}
|
|
21
|
|
22
|
|
23 \frame{
|
|
24 \titlepage
|
|
25 }
|
|
26
|
|
27
|
|
28 \section[Outline]{}
|
|
29 \frame{
|
|
30 \tableofcontents
|
|
31 }
|
|
32
|
|
33
|
|
34
|
|
35
|
15
|
36
|
|
37
|
|
38 \section{Was sind Patterns?}
|
|
39 \frame{ \frametitle{Was sind Patterns?}
|
17
|
40 \begin{block}{Was sind Design Patterns?}
|
15
|
41 \end{block}
|
|
42 }
|
|
43
|
|
44
|
|
45 \section{Definitionen}
|
|
46 \frame{ \frametitle{Definitionen}
|
|
47 \begin{block}{Christopher Alexander}
|
|
48 Each pattern is a three-part-rule, which expresses a relation between a certain context, a problem and a solution
|
|
49 \end{block}
|
17
|
50
|
|
51 \pause
|
|
52
|
15
|
53 \begin{block}{Martin Fowler}
|
|
54 A pattern is an idea that has been useful in one practical context and will be probably useful in others.
|
|
55 \end{block}
|
17
|
56
|
|
57 \pause
|
|
58
|
15
|
59 \begin{block}{Gang of Four (GoF)}
|
|
60 Design Patterns sind Beschreibungen zusammenhängender Objekte und Klassen, die maßgeschneidert sind, um ein allgemeines Entwurfsproblem in einem bestimmten Kontext zu lösen.
|
|
61 \end{block}
|
|
62 }
|
11
|
63
|
|
64
|
15
|
65 \section{Geschichte}
|
|
66 \frame{ \frametitle{Geschichte}
|
17
|
67 \begin{block}{1970er Jahre}
|
|
68 Erstellung erster Entwurfsmuster von einem Architekten
|
|
69 \end{block}
|
|
70
|
|
71 \pause
|
|
72
|
|
73
|
|
74 \begin{block}{1980er Jahre}
|
|
75 Entwicklung von Entwurfsmuster für grafische Benutzerschnittstellen
|
|
76 \end{block}
|
|
77
|
|
78
|
|
79 \pause
|
|
80
|
|
81 \begin{block}{1991}
|
21
|
82 ``Design Patterns - Elements of Reusable Object-Oriented Software''
|
17
|
83 \end{block}
|
15
|
84 }
|
|
85
|
|
86
|
|
87 \section{Klassifizierung}
|
|
88 \frame{ \frametitle{Klassifizierung}
|
17
|
89 \begin{block}{Schema zum beschreiben von Design Patterns}
|
11
|
90
|
16
|
91 \begin{itemize}
|
|
92 \item Mustername und Klassifikation
|
|
93 \item Zweck (Wozu dient dieses Muster?)
|
|
94 \item Synonyme
|
|
95 \item Motivation
|
|
96 \item Anwendbarkeit
|
|
97 \item Struktur
|
|
98 \item Beteiligte Klassen (Akteure)
|
|
99 \item Zusammenspiel der involvierten Klassen
|
|
100 \item Vor- und Nachteile
|
|
101 \item Implementierung
|
|
102 \item Beispielcode
|
|
103 \item Praxiseinsatz
|
|
104 \item Querverweise
|
|
105 \end{itemize}
|
|
106 \end{block}
|
11
|
107
|
|
108 }
|
|
109
|
|
110
|
15
|
111 \section{Nutzen und Vorteile}
|
|
112 \frame{ \frametitle{Nutzen und Vorteile}
|
|
113
|
|
114 \begin{block}{Nutzen / Vorteile von Design Pattern}
|
|
115 \begin{itemize}
|
17
|
116 \item Zeitersparnis
|
|
117 \item Fehlerfreiheit
|
|
118 \item Gemeinsame Kommunikationsgrundlage
|
|
119 \item Sauberes OO-Design
|
|
120 \item Lesbarkeit
|
15
|
121 \item Geringerer Testaufwand
|
|
122 \item Höhere Robustheit
|
|
123 \end{itemize}
|
|
124 \end{block}
|
|
125
|
|
126
|
|
127 }
|
|
128
|
|
129
|
|
130 \section{Literatur}
|
|
131 \frame{ \frametitle{Literatur}
|
17
|
132 \begin{block}{Design Patterns}
|
|
133 \textit{Erich Gamma, Richard Helm, Ralph Johnson, John Vlissides}
|
15
|
134 \end{block}
|
|
135
|
17
|
136 \pause
|
|
137
|
|
138 \begin{block}{Design Patterns Explained}
|
|
139 A New Perspective on Object Oriented Design
|
|
140
|
|
141 \textit{Allan Shalloway, James R. Trott}
|
15
|
142 \end{block}
|
|
143
|
17
|
144 \pause
|
|
145
|
|
146 \begin{block}{Modern C++ Design}
|
|
147 Generic Programming and Design Patterns applied
|
|
148
|
|
149 \textit{Andrei Alexandrescu}
|
15
|
150 \end{block}
|
|
151
|
|
152 }
|
|
153
|
|
154
|
|
155 \section{Beispiele}
|
|
156 \frame{ \frametitle{Beispiele}
|
25
|
157 \begin{block}{Im Script behandelte Design Pattern}
|
15
|
158 \begin{itemize}
|
23
|
159 \item Singleton
|
15
|
160 \item Strategie
|
23
|
161 \item Fassade
|
15
|
162 \end{itemize}
|
|
163 \end{block}
|
|
164
|
|
165 \begin{block}{Weitere Design-Patterns}
|
|
166 \begin{itemize}
|
23
|
167 \item Iterator
|
|
168 \item General Hierarchie
|
|
169 \item Player Role Pattern
|
|
170 \item Immutable
|
|
171 \item Read-Only Interface
|
15
|
172 \end{itemize}
|
|
173 \end{block}
|
|
174 }
|
|
175
|
|
176
|
|
177
|
|
178
|
|
179
|
11
|
180
|
|
181
|
|
182
|
|
183 \section{Zusammenfassung}
|
23
|
184 \frame{
|
11
|
185 \begin{block}{Zusammenfassung}
|
23
|
186 \begin{itemize}
|
|
187 \item Design Patterns sind bewährte Lösungen zu bekannten, häufiger auftretenden Problemen in der Softwareentwicklung
|
|
188 \item Ende der 80er Jahre wurden Entwurfsmusster erstmals in der Softwareentwicklung eingesetzt
|
|
189 \item Die GoF entwickelte ein einheitliches Schema um die einzelnen Design Pattern beschreiben zu können
|
|
190 \end{itemize}
|
11
|
191 \end{block}
|
|
192 }
|
|
193
|
|
194
|
|
195 \end{document}
|
|
196
|
|
197
|