# HG changeset patch # User meillo@marmaro.de # Date 1186776951 -7200 # Node ID 97b57d24fd7b92a412f583a6540dda89c1a0d48d # Parent 3d6e01222e28cbd9443c3281eb155114faf86932 added sample code; modified summary diff -r 3d6e01222e28 -r 97b57d24fd7b code/observer-example.java --- /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); + } + } diff -r 3d6e01222e28 -r 97b57d24fd7b detailed-observer.tex --- 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} -\section{Abschließend} - \paragraph{Verwendete Software} + {\scriptsize + \lstinputlisting[language=java]{code/observer-example.java} + } + \flushright{ \tiny Quellcode von http://java2s.com } + + + + + + +\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}