docs/DesignPatterns

diff 05_antiPatterns.tex @ 25:e7ac382e4a20

added content to weiterePatterns
author meillo@marmaro.de
date Wed, 27 Jun 2007 11:16:43 +0200
parents 356aeb2f53f3
children
line diff
     1.1 --- a/05_antiPatterns.tex	Tue Jun 26 22:30:35 2007 +0200
     1.2 +++ b/05_antiPatterns.tex	Wed Jun 27 11:16:43 2007 +0200
     1.3 @@ -6,33 +6,23 @@
     1.4  
     1.5  \documentclass{beamer}
     1.6  
     1.7 -
     1.8 -%  \usepackage[T1]{fontenc}
     1.9    \usepackage[utf8]{inputenc}
    1.10    \usepackage{ngerman}
    1.11    \usepackage{graphicx}
    1.12    \usepackage[automark]{scrpage2}
    1.13    \input{Style01}
    1.14  
    1.15 -
    1.16 +  \title{Andere Patterns}
    1.17 +  \author{Julian Haug}
    1.18 +  \date{}
    1.19  
    1.20  \begin{document}
    1.21  
    1.22 -
    1.23 -\title{Andere Patterns}
    1.24 -\author{Julian Haug}
    1.25 -\date{}
    1.26 -
    1.27 -%\titlegraphic{\includegraphics[width=3cm]{Pics/Maka-Logo.png}}
    1.28 -
    1.29  \frame{
    1.30    \titlepage
    1.31  }
    1.32  
    1.33  
    1.34 -
    1.35 -
    1.36 -
    1.37  \section[Outline]{}
    1.38  \frame{
    1.39    \tableofcontents
    1.40 @@ -56,11 +46,11 @@
    1.41  }
    1.42  
    1.43  
    1.44 -\section{Beispiele anderer Muster}
    1.45 +\subsection{Beispiele anderer Muster}
    1.46  
    1.47 -\frame{ \frametitle{Beispiele anderer Muster}
    1.48 +\frame{ \frametitle{Architekturmuster}
    1.49  
    1.50 -  \begin{block}{Architekturmuster}
    1.51 +  \begin{block}{}
    1.52      \begin{itemize}
    1.53        \item beschreiben typische Software-Architekturen
    1.54        \item bestimmen nicht ein konkretes Teilproblem, sondern den Grundaufbau der Anwendung
    1.55 @@ -77,7 +67,7 @@
    1.56  }
    1.57  
    1.58  
    1.59 -\section{Idom}
    1.60 +\subsection{Idom}
    1.61  
    1.62  \frame{ \frametitle{Idom}
    1.63  
    1.64 @@ -88,6 +78,8 @@
    1.65      \end{itemize}
    1.66    \end{block}
    1.67  
    1.68 +  \pause
    1.69 +
    1.70    \begin{block}{Anwendung}
    1.71      \begin{itemize}
    1.72        \item Konkrete Implementierung eines Entwurfsmusters.
    1.73 @@ -99,7 +91,7 @@
    1.74  }
    1.75  
    1.76  
    1.77 -\section{Weitere Beispiele}
    1.78 +\subsection{Weitere Beispiele}
    1.79  
    1.80  \frame{ \frametitle{Weitere Beispiele}
    1.81  
    1.82 @@ -114,21 +106,6 @@
    1.83  }
    1.84  
    1.85  
    1.86 -\section{Tipps zur Anwendung}
    1.87 -
    1.88 -\frame{ \frametitle{Tipps zur Anwendung}
    1.89 -
    1.90 -  \begin{block}{}
    1.91 -    \begin{itemize}
    1.92 -      \item 
    1.93 -      \item 
    1.94 -      \item 
    1.95 -    \end{itemize}
    1.96 -  \end{block}
    1.97 -
    1.98 -}
    1.99 -
   1.100 -
   1.101  
   1.102  
   1.103  
   1.104 @@ -160,26 +137,72 @@
   1.105  }
   1.106  
   1.107  
   1.108 +\subsection{Programmier-Anti-Patterns}
   1.109  \frame{ \frametitle{Programmierungs-Anti-Patterns}
   1.110  
   1.111 -  \begin{block}{}
   1.112 +  \begin{block}{Zwiebel}
   1.113      \begin{itemize}
   1.114 -      \item 
   1.115 -      \item 
   1.116 +      \item Neue Funktionalität wird um (oder über) die alte gelegt
   1.117 +      \item Häufig bei Erweiterungen
   1.118 +      \item Führt zu vielschichtigem Programmcode (Zwiebel)
   1.119 +    \end{itemize}
   1.120 +  \end{block}
   1.121 +
   1.122 +  \pause
   1.123 +
   1.124 +  \begin{block}{Lavafluss}
   1.125 +    \begin{itemize}
   1.126 +      \item in Anwendung häuft sich ``toter Quelltext''
   1.127 +      \item Statt zu löschen wird um ihn ``herum'' programmiert
   1.128      \end{itemize}
   1.129    \end{block}
   1.130  
   1.131  }
   1.132  
   1.133  
   1.134 +\section{Tipps zur Anwendung}
   1.135 +
   1.136 +\frame{ \frametitle{Tipps zur Anwendung}
   1.137 +
   1.138 +  \begin{block}{Auswahl eines Entwurfmusters}
   1.139 +    Problem: Viele (ähnliche) Muster kommen in Frage
   1.140 +    \begin{itemize}
   1.141 +      \item Musterkatalog
   1.142 +      \item Genaue Analyse des Problems
   1.143 +    \end{itemize}
   1.144 +  \end{block}
   1.145 +
   1.146 +  \pause
   1.147 +
   1.148 +  \begin{block}{Verwendung des Musters}
   1.149 +    Problem: Verstehen wie das Muster unser Problem löst
   1.150 +    \begin{itemize}
   1.151 +      \item Strukturdiagramm (UML)
   1.152 +      \item Objekt/Klassenliste
   1.153 +      \item Implementierungsbeispiele
   1.154 +    \end{itemize}
   1.155 +  \end{block}
   1.156 +
   1.157 +  \pause
   1.158 +
   1.159 +  \begin{block}{Wann sollte KEIN Entwurfsmuster benutzt werden}
   1.160 +    \begin{itemize}
   1.161 +      \item Muster dürfen den Code nicht verkomplizieren
   1.162 +      \item Oft reicht eine Lösung die zwar weniger flexibel aber simpler ist
   1.163 +    \end{itemize}
   1.164 +  \end{block}
   1.165 +
   1.166 +}
   1.167 +
   1.168 +
   1.169  
   1.170  \section{Zusammenfassung}
   1.171 -\frame{ %\frametitle{Zusammenfassend}
   1.172 +\frame{
   1.173    \begin{block}{Zusammenfassung}
   1.174    \begin{itemize}
   1.175 -    \item 
   1.176 -    \item 
   1.177 -    \item 
   1.178 +    \item Es gibt verschiedene Arten von Mustern – für uns von direkter Bedeutung sind Entwurfs-, Architekturmuster und Idome
   1.179 +    \item Anti-Pattern zeigen welche Fehler man vermeiden sollte
   1.180 +    \item Bei Anwendung von Mustern das Problem genau analysieren, passendes Muster suchen und gegebenenfalls anwenden
   1.181    \end{itemize}
   1.182    \end{block}
   1.183  }