Template Methode und Strategie Design Patterns

8

Dies ist wahrscheinlich eine Neulingsfrage, da ich neu in Designmustern bin, aber ich habe mir die Template Method und Strategy DP's angesehen und sie scheinen sich sehr ähnlich zu sein. Ich kann die Definitionen lesen, die UMLs untersuchen und Code-Beispiele auschecken, aber für mich scheint es, als ob das Strategie-Muster nur das Vorlagen-Muster-Muster verwendet, aber nur zufällig in Objekt und Objekt eingibt (d. H. Komposition).

Und dafür scheint die Template-Methode nur eine einfache OO-Vererbung zu sein.

Vermisse ich einen wichtigen Aspekt ihrer Unterschiede? Fehle ich etwas über die Template-Methode, die es mehr als nur grundlegende Vererbung macht?

Hinweis: Es gibt einen früheren Beitrag dazu ( 672083 ), aber es ist mehr auf wann es zu verwenden, welche Art von hilft mir, es ein bisschen mehr zu bekommen, aber ich möchte meine Gedanken über die Muster selbst gültig halten.

    
Cody 12.06.2009, 20:43
quelle

2 Antworten

9

Es kommt im Grunde alles auf Semantik an. Das Strategie-Pattern erlaubt es Ihnen, einen bestimmten Algorithmus / eine bestimmte Prozedur (die Strategie) an ein anderes Objekt zu übergeben und dieses zu verwenden. Die Template-Methode erlaubt es Ihnen, bestimmte Aspekte eines Algorithmus zu überschreiben und dabei bestimmte Aspekte gleich zu halten (Reihenfolge beibehalten und Dinge, die immer am Anfang und am Ende gemacht werden, zum Beispiel ... die 'Vorlage') während Vererbung eine Möglichkeit ist, IS-A-Beziehungen in Datenmodellen zu modellieren.

Sicherlich sind Template-Methoden am einfachsten mit Vererbung zu implementieren (obwohl Sie Composition genauso verwenden könnten, besonders wenn Sie Funktoren haben), und Strategie-Patterns sind häufig auch Template-Methoden, aber wo die Syntax ähnlich ist, sind die Bedeutungen sehr verschieden.

    
workmad3 12.06.2009 20:50
quelle
1

Das Strategie Designmuster
bietet eine Möglichkeit, den Algorithmus eines Objekts auszutauschen dynamisch zur Laufzeit
(über Objektkomposition).

Zum Beispiel die Berechnung von Preisen in einem Auftragsabwicklungssystem.
Um Preise auf verschiedene Arten zu berechnen, Verschiedene Preisalgorithmen können unterstützt werden So kann der zu verwendende Algorithmus zur Laufzeit ausgewählt (injiziert) und dynamisch ausgetauscht werden.

Die Template Methode Design-Muster | bietet einen Weg zu Definieren Sie einige Teile des Verhaltens einer Klasse statisch zur Kompilierzeit
(über Unterklasse).

Zum Beispiel das Design wiederverwendbarer Anwendungen (Frameworks).
Die Anwendung implementiert die gemeinsamen (invarianten) Teile des Verhaltens damit Benutzer der Anwendung Unterklassen zum Neudefinieren schreiben können die varianten Teile für ihre Bedürfnisse. Unterklassenschreiber sollten jedoch nicht in der Lage sein, die invarianten Teile von zu ändern das Verhalten noch die Struktur des Verhaltens (die Struktur invarianter und varianter Teile).

    
GFranke 21.02.2015 19:47
quelle