Software Design Patterns Creational Patterns Structural Patterns Behavioral Patterns –Behavioral Class Patterns Interpreter Template Method Pattern –Behavioral.

Slides:



Advertisements
Ähnliche Präsentationen
der Universität Oldenburg
Advertisements

der Universität Oldenburg
Objektorientierte Programmierung
der Universität Oldenburg
Harald Köbler Software Design Patterns Prototype.
DVG Einfache Klassen Einfache Klassen. DVG Einfache Klassen 2 Strukturen Beispiel: Personendaten bestehen aus –String name –String vorname.
Konzepte objektorientierter Systeme
Zusammenfassung des Kapitels 8
der Universität Oldenburg
Abstrakte Klassen HS Merseburg (FH) WS 06/07.
Java: Objektorientierte Programmierung
Java: Grundlagen der Objektorientierung
FH-Hof Fehlerbehandlung Richard Göbel. FH-Hof Konzept Fehler können mit dem Operator throw einer übergeordneten Funktion signalisiert werden. Parameter.
IF-ELSE-IF-Ketten Weiter mit PP..
Erweiterte Zuweisungskompatibilität
WHILE - Anweisung. Aufgabe : Ausgabe aller ganzen Zahlen von 0 bis 100 auf dem Bildschirm.
Interface bzw. Schnittstelle anschaulich: Hüllenklasse
FOR Anweisung. Aufgabe : Ausgabe aller ganzen Zahlen von 0 bis 100 auf dem Bildschirm.
DO...WHILE Anweisung.
Praktikum Entwicklung und Einsatz von Geosoftware I - Sitzung 4 Vererbung Sommersemester 2003 Lars Bernard.
Java-Kurs - 2. Übung Entwicklungsumgebung Struktur von Programmen
Programmieren mit JAVA
Programmieren mit JAVA
PRJ 2007/1 Stefan Dissmann Motivation Problem: gleiche Datenstrukturen werden für verschiedene Objekte gebraucht: z.B. Listen von Studierenden, Kunden,
PKJ 2005/1 Stefan Dissmann Klassenhierarchie Person Kunde Goldkunde Lieferant Object.
1 WS 2012 Software-Engineering II Analyse- und Entwurfsmuster.
Proxy Pattern Vorlesung Design Patterns Sieglinde Heinrich
Dependents, Publish-Subscribe, Listener
1DVG3 - Paint Paint ein Zeichenprogramm. DVG3 - Paint 2 Paint – ein Zeichenprogramm.
1DVG3 - anonyme Klassen Anonyme Klassen. DVG3 - anonyme Klassen 2 Syntax new BasisKlasse(Parameterliste) { Modifikationen und Erweiterungen der Basisklasse.
Abstrakte Klassen DVG
DVG Einführung in Java1 Einführung in JAVA.
Abstrakte Klassen, Interface
DVG Klassen und Objekte
DVG Einfache Klassen 1 Einfache Klassen. 2DVG Einfache KlassenStrukturen Beispiel: Personendaten bestehen aus String name String name.
Klassen 02 - Klassen.
Java in 9 Folien Besser: Online-Buch Go to Java 2.
Thema: Fibonacci-Zahlen
Bestimmung des ggT zweier Zahlen
Informatikunterricht mit Java
Vererbung Einfache Vererbung – Erben von abstrakten Klassen – Implementieren eines Interfaces.
Template Pattern Richard Göbel.
Seite 1 Interface - Konzept Ein Interface führt einen neuen Datentyp ein: interface Frau {... } Das Interface enthält Deklarationen ( keine Definitionen.
PRJ 2007/1 Stefan Dissmann Verkettete datenstruktur: Liste Problem: Liste, die eine beliebige Zahl von Elementen verwaltet Operationen: Erzeugen, Anfügen,
Rekursive Funktionen (Fakultät)
Herzlich Willkommen zu „Einführung in die Programmierung mit Java“
CuP - Java Elfte Vorlesung Montag, 11. November 2002.
EPROG Tutorium Einheit 4 Klassen und Objekte. Wiederholung Schleifen do... while while for break/continue Strings String char Methoden für Strings Arrays.
Javakurs FSS 2012 Lehrstuhl Stuckenschmidt
Testtechniken-Praktikum WS 2005/06 1 Testen mit Mock- Objekten Andreas Höfer Dr. Matthias Müller.
Unterprogramme in JAVA
EPROG Tutorium #6 Philipp Effenberger
CuP - Java Vierte Vorlesung Entspricht ungefähr Kapitel 2.1 des Skriptums Montag, 14. Oktober 2002.
Programmierung von Agenten in Java: Implementierung einer Supply-Chain
Programmiervorkurs WS 2014/15 Methoden
Programmiervorkurs WS 2014/15 Schleifen
Programmiervorkurs WS 2014/15 Instanzmethoden
3. Beschreibung von Abläufen durch Algorithmen 3.4 Zufall
Informatik I : Software höhere Programmiersprachen Java Klassen: hat Methoden (Funktionen) und Daten (Variablen) es kann mehrere Klassen geben nur eine.
Natürliches Programmieren
Software Design Patterns
Übung Informatik I exercise01. 2 Inhaltsübersicht Nachbesprechung Übung 1 Individuelle Fragen/Bemerkungen.
© 2004 Pohlig Informatik Kurse © 2004 Pohlig Informatik Kurse Der Tramp tanzt die Rekursion zünderUntersuchen(…) Basisfall Rückmeldung:
Java-Kurs - 5. Übung Besprechung der Übungsaufgabe Klassen und Objekte
-LABORPRAKTIKUM- SOMMERSEMESTER 2005
Abstrakte Klassen und das Interface-Konzept
Vererbung in Java. public abstract class Form { protected int breite; protected int hoehe; protected String farbe; /** * Erzeuge eine Form der Breite.
Objektorientierung Gliederung von Daten und Funktionen zu Objekten
Java-Kurs Übung Klassen und Objekte: Vererbung (Fortsetzung)
Grundkurs Informatik 11-13
 Präsentation transkript:

Software Design Patterns Creational Patterns Structural Patterns Behavioral Patterns –Behavioral Class Patterns Interpreter Template Method Pattern –Behavioral Object Patterns

Behavioral Patterns Algorithmen Zuständigkeiten zwischen Objekten/ Klassen Kommunikation zwischen Objekten/ Klassen Wie agieren Objekte/Klassen miteinander?

Template Method Pattern Ziel: –Möglichkeit zur Variierung eines Algorithmus –Hierbei festes Grundgerüst Umsetzung: –Abstrakter Grundalgorithmus –Subklassen definieren konkretes Verhalten

Template Method Pattern TemplateMethod() PrimitiveOperation1() PrimitiveOperation2() AbstractClass ConcreteClass PrimitiveOperation1() PrimitiveOperation2()... PrimitiveOperation1()... PrimitiveOperation2()...

Praxisbeispiel Haus + baueHaus() - ebneBoden() # doBaueRohbau() # doBaueDach()... ebneBoden(); doBaueRohbau(); doBaueDach();... Backsteinhaus # doBaueRohbau() # doBaueDach() Blockhaus # doBaueRohbau() # doBaueDach() Abstrakte Klasse Konkrete Klassen Template Method

Code abstract public class Haus { final public void baueHaus() { System.out.println("...baue Haus.."); ebneBoden(); doBaueRohbau(); doBaueDach(); System.out.println("fertig ist das Haus\n"); } final private void ebneBoden() { System.out.println("...ebne Boden..."); } abstract protected void doBaueRohbau(); abstract protected void doBaueDach(); }

Code public class Backsteinhaus extends Haus{ protected void doBaueRohbau() { System.out.println("...baue Backstein-Rohbau..."); } protected void doBaueDach() { System.out.println("...baue Backstein-Dach..."); } public static void main(String args[]) { Backsteinhaus b1 = new Backsteinhaus(); b1.baueHaus(); }

Ausgabe Wenn Blockhaus analog:...baue Haus......ebne Boden......baue Backstein-Rohbau......baue Backstein-Dach... fertig ist das Haus...baue Haus......ebne Boden......baue Blockhaus-Rohbau......baue Blockhaus-Dach... fertig ist das Haus

Folgerungen für Algorithmus feste Reihenfolge Subklassen können Schritte variieren (nicht Reihenfolge)

Vorteile Beim Haus: –Beliebig viele Häuser mit unterschiedlicher Bauweise (->Verhalten) denkbar –Code doEbneBoden() muss nur einmal geschrieben werden –Dach ist an richtiger Stelle

Vorteile Allgemein: –Einmalige Implementierung von unveränderlichem Verhalten, Subklassen können variables Verhalten implementieren –Vermeidung von Code Duplication –Kontrolle der Erweiterungen der Subklassen

Auswirkungen Fundamentale Technik für Wiederverwendung von Code Invertierte Kontrollstruktur ( -> Hollywood-Prinzip)

Quellen Print: –Gamma, Helm, Johnson, Vlissides, Design Patterns, Addison-Wesley Internet: – ns Bei Fragen: