docs/DesignPatterns
changeset 25:e7ac382e4a20
added content to weiterePatterns
author | meillo@marmaro.de |
---|---|
date | Wed, 27 Jun 2007 11:16:43 +0200 |
parents | 6592083da58a |
children | 19e867456aff |
files | 01_einfuehrung.tex 05_antiPatterns.tex |
diffstat | 2 files changed, 64 insertions(+), 42 deletions(-) [+] |
line diff
1.1 --- a/01_einfuehrung.tex Tue Jun 26 22:30:35 2007 +0200 1.2 +++ b/01_einfuehrung.tex Wed Jun 27 11:16:43 2007 +0200 1.3 @@ -118,7 +118,6 @@ 1.4 \item Gemeinsame Kommunikationsgrundlage 1.5 \item Sauberes OO-Design 1.6 \item Lesbarkeit 1.7 - \item Kommunikation 1.8 \item Geringerer Testaufwand 1.9 \item Höhere Robustheit 1.10 \end{itemize} 1.11 @@ -155,7 +154,7 @@ 1.12 1.13 \section{Beispiele} 1.14 \frame{ \frametitle{Beispiele} 1.15 - \begin{block}{In der Vorlesung behandelte Design Pattern} 1.16 + \begin{block}{Im Script behandelte Design Pattern} 1.17 \begin{itemize} 1.18 \item Singleton 1.19 \item Strategie
2.1 --- a/05_antiPatterns.tex Tue Jun 26 22:30:35 2007 +0200 2.2 +++ b/05_antiPatterns.tex Wed Jun 27 11:16:43 2007 +0200 2.3 @@ -6,33 +6,23 @@ 2.4 2.5 \documentclass{beamer} 2.6 2.7 - 2.8 -% \usepackage[T1]{fontenc} 2.9 \usepackage[utf8]{inputenc} 2.10 \usepackage{ngerman} 2.11 \usepackage{graphicx} 2.12 \usepackage[automark]{scrpage2} 2.13 \input{Style01} 2.14 2.15 - 2.16 + \title{Andere Patterns} 2.17 + \author{Julian Haug} 2.18 + \date{} 2.19 2.20 \begin{document} 2.21 2.22 - 2.23 -\title{Andere Patterns} 2.24 -\author{Julian Haug} 2.25 -\date{} 2.26 - 2.27 -%\titlegraphic{\includegraphics[width=3cm]{Pics/Maka-Logo.png}} 2.28 - 2.29 \frame{ 2.30 \titlepage 2.31 } 2.32 2.33 2.34 - 2.35 - 2.36 - 2.37 \section[Outline]{} 2.38 \frame{ 2.39 \tableofcontents 2.40 @@ -56,11 +46,11 @@ 2.41 } 2.42 2.43 2.44 -\section{Beispiele anderer Muster} 2.45 +\subsection{Beispiele anderer Muster} 2.46 2.47 -\frame{ \frametitle{Beispiele anderer Muster} 2.48 +\frame{ \frametitle{Architekturmuster} 2.49 2.50 - \begin{block}{Architekturmuster} 2.51 + \begin{block}{} 2.52 \begin{itemize} 2.53 \item beschreiben typische Software-Architekturen 2.54 \item bestimmen nicht ein konkretes Teilproblem, sondern den Grundaufbau der Anwendung 2.55 @@ -77,7 +67,7 @@ 2.56 } 2.57 2.58 2.59 -\section{Idom} 2.60 +\subsection{Idom} 2.61 2.62 \frame{ \frametitle{Idom} 2.63 2.64 @@ -88,6 +78,8 @@ 2.65 \end{itemize} 2.66 \end{block} 2.67 2.68 + \pause 2.69 + 2.70 \begin{block}{Anwendung} 2.71 \begin{itemize} 2.72 \item Konkrete Implementierung eines Entwurfsmusters. 2.73 @@ -99,7 +91,7 @@ 2.74 } 2.75 2.76 2.77 -\section{Weitere Beispiele} 2.78 +\subsection{Weitere Beispiele} 2.79 2.80 \frame{ \frametitle{Weitere Beispiele} 2.81 2.82 @@ -114,21 +106,6 @@ 2.83 } 2.84 2.85 2.86 -\section{Tipps zur Anwendung} 2.87 - 2.88 -\frame{ \frametitle{Tipps zur Anwendung} 2.89 - 2.90 - \begin{block}{} 2.91 - \begin{itemize} 2.92 - \item 2.93 - \item 2.94 - \item 2.95 - \end{itemize} 2.96 - \end{block} 2.97 - 2.98 -} 2.99 - 2.100 - 2.101 2.102 2.103 2.104 @@ -160,26 +137,72 @@ 2.105 } 2.106 2.107 2.108 +\subsection{Programmier-Anti-Patterns} 2.109 \frame{ \frametitle{Programmierungs-Anti-Patterns} 2.110 2.111 - \begin{block}{} 2.112 + \begin{block}{Zwiebel} 2.113 \begin{itemize} 2.114 - \item 2.115 - \item 2.116 + \item Neue Funktionalität wird um (oder über) die alte gelegt 2.117 + \item Häufig bei Erweiterungen 2.118 + \item Führt zu vielschichtigem Programmcode (Zwiebel) 2.119 + \end{itemize} 2.120 + \end{block} 2.121 + 2.122 + \pause 2.123 + 2.124 + \begin{block}{Lavafluss} 2.125 + \begin{itemize} 2.126 + \item in Anwendung häuft sich ``toter Quelltext'' 2.127 + \item Statt zu löschen wird um ihn ``herum'' programmiert 2.128 \end{itemize} 2.129 \end{block} 2.130 2.131 } 2.132 2.133 2.134 +\section{Tipps zur Anwendung} 2.135 + 2.136 +\frame{ \frametitle{Tipps zur Anwendung} 2.137 + 2.138 + \begin{block}{Auswahl eines Entwurfmusters} 2.139 + Problem: Viele (ähnliche) Muster kommen in Frage 2.140 + \begin{itemize} 2.141 + \item Musterkatalog 2.142 + \item Genaue Analyse des Problems 2.143 + \end{itemize} 2.144 + \end{block} 2.145 + 2.146 + \pause 2.147 + 2.148 + \begin{block}{Verwendung des Musters} 2.149 + Problem: Verstehen wie das Muster unser Problem löst 2.150 + \begin{itemize} 2.151 + \item Strukturdiagramm (UML) 2.152 + \item Objekt/Klassenliste 2.153 + \item Implementierungsbeispiele 2.154 + \end{itemize} 2.155 + \end{block} 2.156 + 2.157 + \pause 2.158 + 2.159 + \begin{block}{Wann sollte KEIN Entwurfsmuster benutzt werden} 2.160 + \begin{itemize} 2.161 + \item Muster dürfen den Code nicht verkomplizieren 2.162 + \item Oft reicht eine Lösung die zwar weniger flexibel aber simpler ist 2.163 + \end{itemize} 2.164 + \end{block} 2.165 + 2.166 +} 2.167 + 2.168 + 2.169 2.170 \section{Zusammenfassung} 2.171 -\frame{ %\frametitle{Zusammenfassend} 2.172 +\frame{ 2.173 \begin{block}{Zusammenfassung} 2.174 \begin{itemize} 2.175 - \item 2.176 - \item 2.177 - \item 2.178 + \item Es gibt verschiedene Arten von Mustern – für uns von direkter Bedeutung sind Entwurfs-, Architekturmuster und Idome 2.179 + \item Anti-Pattern zeigen welche Fehler man vermeiden sollte 2.180 + \item Bei Anwendung von Mustern das Problem genau analysieren, passendes Muster suchen und gegebenenfalls anwenden 2.181 \end{itemize} 2.182 \end{block} 2.183 }