docs/DesignPatterns

annotate 01_einfuehrung.tex @ 21:80c995d97cfa

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