Präsentation herunterladen
Die Präsentation wird geladen. Bitte warten
Veröffentlicht von:Mann Ankenbauer Geändert vor über 10 Jahren
1
Software Design Patterns Creational Patterns Structural Patterns Behavioral Patterns –Behavioral Class Patterns Interpreter Template Method Pattern –Behavioral Object Patterns
2
Behavioral Patterns Algorithmen Zuständigkeiten zwischen Objekten/ Klassen Kommunikation zwischen Objekten/ Klassen Wie agieren Objekte/Klassen miteinander?
3
Template Method Pattern Ziel: –Möglichkeit zur Variierung eines Algorithmus –Hierbei festes Grundgerüst Umsetzung: –Abstrakter Grundalgorithmus –Subklassen definieren konkretes Verhalten
4
Template Method Pattern TemplateMethod() PrimitiveOperation1() PrimitiveOperation2() AbstractClass ConcreteClass PrimitiveOperation1() PrimitiveOperation2()... PrimitiveOperation1()... PrimitiveOperation2()...
5
Praxisbeispiel Haus + baueHaus() - ebneBoden() # doBaueRohbau() # doBaueDach()... ebneBoden(); doBaueRohbau(); doBaueDach();... Backsteinhaus # doBaueRohbau() # doBaueDach() Blockhaus # doBaueRohbau() # doBaueDach() Abstrakte Klasse Konkrete Klassen Template Method
6
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(); }
7
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(); }
8
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
9
Folgerungen für Algorithmus feste Reihenfolge Subklassen können Schritte variieren (nicht Reihenfolge)
10
Vorteile Beim Haus: –Beliebig viele Häuser mit unterschiedlicher Bauweise (->Verhalten) denkbar –Code doEbneBoden() muss nur einmal geschrieben werden –Dach ist an richtiger Stelle
11
Vorteile Allgemein: –Einmalige Implementierung von unveränderlichem Verhalten, Subklassen können variables Verhalten implementieren –Vermeidung von Code Duplication –Kontrolle der Erweiterungen der Subklassen
12
Auswirkungen Fundamentale Technik für Wiederverwendung von Code Invertierte Kontrollstruktur ( -> Hollywood-Prinzip)
13
Quellen Print: –Gamma, Helm, Johnson, Vlissides, Design Patterns, Addison-Wesley Internet: –http://www.agcs.com/supportv2/techpapers/patter ns Bei Fragen: –jd05@hdm-stuttgart.de –nd06@hdm-stuttgart.de
Ähnliche Präsentationen
© 2024 SlidePlayer.org Inc.
All rights reserved.