Strategy Pattern Richard Göbel
Ansatz: Strategy Pattern / Policy Pattern Motivation Ausgangspunkt Ähnliche Algorithmen (Methoden) a, b, c, . . . werden in verschiedenen Klassen verwendet Grundsätzlich ließen sich diese Algorithmen vererben (ggf. über Mehrfachvererbung) Wie lassen sich diese Algorithmen auch zur Laufzeit austauschen? Ansatz: Strategy Pattern / Policy Pattern
Konkretes Beispiel - Beschreibung Inventar Allgemeine Attribute Bezeichnung, Kaufpreis, Kaufdatum Unterklassen wie Computer, Kopierer, PKW, etc. Berücksichtige zusätzlich unterschiedliche Abschreibungsformen Lineare Abschreibung (konstanter Betrag) Degressive Abschreibung (prozentualer Betrag) andere Formen . . . Funktion für Zeitwertberechnung
Konkretes Beispiel - Diagramm Inventarobjekt Lineare Abschreibung Kopierer Computer PKW Schrank zeitwert() zeitwert() zeitwert() zeitwert() Degressive Abschreibung Lineare Abschreibung Degressive Abschreibung
Vererbung der Methoden Optionen Vererbung der Methoden Mehrfachvererbung? Interfaces? Änderung der Abschreibungsmethode zur Laufzeit?
Abstrakter Lösungsansatz Interface Abstrakte Klasse M f() A M m pf() X Y f() f() B C D E pf() pf() pf() pf()
Konkreter Lösungsansatz Welche Klassen brauchen wir für das Inventarbeispiel? Wie werden diese Klassen ausgefüllt? Wie sieht die Situation in anderen Programmiersprachen aus?