Mercurial > docs > DesignPatterns
changeset 33:97b57d24fd7b
added sample code; modified summary
author | meillo@marmaro.de |
---|---|
date | Fri, 10 Aug 2007 22:15:51 +0200 |
parents | 3d6e01222e28 |
children | b2cefbd90180 |
files | code/observer-example.java detailed-observer.tex |
diffstat | 2 files changed, 63 insertions(+), 23 deletions(-) [+] |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/code/observer-example.java Fri Aug 10 22:15:51 2007 +0200 @@ -0,0 +1,31 @@ + import java.util.Observable; + import java.util.Observer; + + public class MessageBoard extends Observable { + private String message; + + public String getMessage() { + return message; + } + + public void changeMessage(String message) { + this.message = message; + setChanged(); + notifyObservers(message); + } + + public static void main(String[] args) { + MessageBoard board = new MessageBoard(); + Student bob = new Student(); + Student joe = new Student(); + board.addObserver(bob); + board.addObserver(joe); + board.changeMessage("More Homework!"); + } + } + + class Student implements Observer { + public void update(Observable o, Object arg) { + System.out.println("Message board changed: " + arg); + } + }
--- a/detailed-observer.tex Mon Aug 06 02:25:32 2007 +0200 +++ b/detailed-observer.tex Fri Aug 10 22:15:51 2007 +0200 @@ -9,6 +9,7 @@ \usepackage[utf8]{inputenc} \usepackage{ngerman} \usepackage{graphicx} + \usepackage{listings} \usepackage[automark]{scrpage2} \setkomafont{sectioning}{\normalfont\normalcolor\bfseries} @@ -387,25 +388,50 @@ \newpage + \section{Zusammenfassung} %\textbf{Zusammenfassend} - \paragraph{Zusammenfassung} + + Ich habe in meiner Ausarbeitung bisher ganz bewusst auf Quellcode verzichtet, denn ich wollte vermitteln weshalb das Observer-Pattern so aufgebaut ist wie es ist. Ich wollte Verständnis für Design Patterns entwickeln und zeigen, dass sie absolut logische Lösungen sind. + + Design Patterns sind dabei Modelle wie Quellcode aufgebaut werden sollte. Sie sind kein Code --- sie beschreiben nur wie Code sein sollte. Das ist auch ganz gut so, denn: + + \begin{quote} + \textbf{ Implementierungen sind Schall und Rauch,\\ + Konzepte dagegen bleiben bestehen! } + \end{quote} + + Aus diesem Grund will ich mich mit Quelltext auf dieses Beispiel im Anhang beschränken. Dennoch finde ich es wichtig, doch zumindest eine Beispiel-Implementierung vorzeigen zu können, da Quellcode sehr aussagekräftig sein kann. In jeden Fall wird er meine sonstigen Ausführungen gut abrunden. + + + \paragraph{In drei Sätzen:} \begin{itemize} \item Menschen denken basierend auf der Realität \item deshalb Design Patterns auf Realität zurückführen \item Patterns anwenden weil man es in der Realität auch so machen würde \end{itemize} - + + + + + +\appendix + +\newpage + +\section{Beispiel-Implementierung} + + {\scriptsize + \lstinputlisting[language=java]{code/observer-example.java} + } + \flushright{ \tiny Quellcode von http://java2s.com } - - -\section{Abschließend} - \paragraph{Verwendete Software} +\section{Verwendete Software} \begin{itemize} \item Debian GNU/Linux \item \texttt{pdflatex} @@ -419,21 +445,4 @@ - - -\appendix - -\section{Code} - \textbf{ Implementierungen sind Schall und Rauch,\\ Konzepte dagegen bleiben bestehen! } - - - - - - - - - - - \end{document}