docs/DesignPatterns

view 01_einfuehrung.tex @ 21:80c995d97cfa

updated Observer
author meillo@marmaro.de
date Tue, 26 Jun 2007 14:36:01 +0200
parents 6a63cd1ca3d8
children e206112b4afe
line source
1 % @file
2 % @brief Referat DesignPatterns `Einführung'
3 % @author Markus Rundel
4 % @since 2007-06-21
7 \documentclass{beamer}
10 % \usepackage[T1]{fontenc}
11 \usepackage[utf8]{inputenc}
12 \usepackage{ngerman}
13 \usepackage{graphicx}
14 \usepackage[automark]{scrpage2}
15 \input{Style01}
19 \begin{document}
22 \title{Einführung}
23 \author{Markus Rundel}
24 \date{}
26 \frame{
27 \titlepage
28 }
34 \section[Outline]{}
35 \frame{
36 \tableofcontents
37 }
44 \section{Was sind Patterns?}
45 \frame{ \frametitle{Was sind Patterns?}
46 \begin{block}{Was sind Design Patterns?}
47 \end{block}
48 }
51 \section{Definitionen}
52 \frame{ \frametitle{Definitionen}
53 \begin{block}{Christopher Alexander}
54 Each pattern is a three-part-rule, which expresses a relation between a certain context, a problem and a solution
55 \end{block}
57 \pause
59 \begin{block}{Martin Fowler}
60 A pattern is an idea that has been useful in one practical context and will be probably useful in others.
61 \end{block}
63 \pause
65 \begin{block}{Gang of Four (GoF)}
66 Design Patterns sind Beschreibungen zusammenhängender Objekte und Klassen, die maßgeschneidert sind, um ein allgemeines Entwurfsproblem in einem bestimmten Kontext zu lösen.
67 \end{block}
68 }
71 \section{Geschichte}
72 \frame{ \frametitle{Geschichte}
73 \begin{block}{1970er Jahre}
74 Erstellung erster Entwurfsmuster von einem Architekten
75 \end{block}
77 \pause
80 \begin{block}{1980er Jahre}
81 Entwicklung von Entwurfsmuster für grafische Benutzerschnittstellen
82 \end{block}
85 \pause
87 \begin{block}{1991}
88 ``Design Patterns - Elements of Reusable Object-Oriented Software''
89 \end{block}
90 }
93 \section{Klassifizierung}
94 \frame{ \frametitle{Klassifizierung}
95 \begin{block}{Schema zum beschreiben von Design Patterns}
97 \begin{itemize}
98 \item Mustername und Klassifikation
99 \item Zweck (Wozu dient dieses Muster?)
100 \item Synonyme
101 \item Motivation
102 \item Anwendbarkeit
103 \item Struktur
104 \item Beteiligte Klassen (Akteure)
105 \item Zusammenspiel der involvierten Klassen
106 \item Vor- und Nachteile
107 \item Implementierung
108 \item Beispielcode
109 \item Praxiseinsatz
110 \item Querverweise
111 \end{itemize}
112 \end{block}
114 }
117 \section{Nutzen und Vorteile}
118 \frame{ \frametitle{Nutzen und Vorteile}
120 \begin{block}{Nutzen / Vorteile von Design Pattern}
121 \begin{itemize}
122 \item Zeitersparnis
123 \item Fehlerfreiheit
124 \item Gemeinsame Kommunikationsgrundlage
125 \item Sauberes OO-Design
126 \item Lesbarkeit
127 \item Kommunikation
128 \item Geringerer Testaufwand
129 \item Höhere Robustheit
130 \end{itemize}
131 \end{block}
134 }
137 \section{Literatur}
138 \frame{ \frametitle{Literatur}
139 \begin{block}{Design Patterns}
140 \textit{Erich Gamma, Richard Helm, Ralph Johnson, John Vlissides}
141 \end{block}
143 \pause
146 \begin{block}{Design Patterns Explained}
147 A New Perspective on Object Oriented Design
149 \textit{Allan Shalloway, James R. Trott}
150 \end{block}
152 \pause
155 \begin{block}{Modern C++ Design}
156 Generic Programming and Design Patterns applied
158 \textit{Andrei Alexandrescu}
159 \end{block}
161 }
164 \section{Beispiele}
165 \frame{ \frametitle{Beispiele}
166 \begin{block}{In der Vorlesung behandelte Design Pattern}
167 \begin{itemize}
168 \item Singleton %(stellt sicher, dass es von einer Klasse nur eine Instanz gibt)
169 \item Strategie
170 \item Fassade %(erlaubt den einfachen Zugriff auf ein komplexes Subsystem)
171 \end{itemize}
172 \end{block}
174 \begin{block}{Weitere Design-Patterns}
175 \begin{itemize}
176 \item Iterator
177 \item General Hierarchie
178 \item Player Role Pattern
179 \item Immutable
180 \item Read-Only Interface
181 \end{itemize}
182 \end{block}
183 }
192 \section{Zusammenfassung}
193 \frame{ %\frametitle{Zusammenfassend}
194 \begin{block}{Zusammenfassung}
195 \begin{itemize}
196 \item
197 \item
198 \item
199 \end{itemize}
200 \end{block}
201 }
204 \end{document}