Unterschied zwischen Strategie-Muster und Befehlsmuster
Was ist der Unterschied zwischen den Strategie-Muster und die Befehl Muster? Ich bin auch auf der Suche für einige Beispiele in Java.
Kommentar zu dem Problem - Öffnen
erste Suche-Treffer: coderanch.com/t/100214/patterns/Command-vs-Strategy-Pattern
Verwandte: stackoverflow.com/questions/1673841/...
mögliche Duplikate von Strategie-pattern vs. Command-pattern
InformationsquelleAutor der Frage Krishna | 2011-01-29
Du musst angemeldet sein, um einen Kommentar abzugeben.
In der Regel die Command-Muster wird verwendet, um ein Objekt aus , was getan werden muss -- zu übernehmen einen Betrieb und seine Argumente ein und packen Sie Sie in ein Objekt, die protokolliert werden, statt für "rückgängig", die an einen remote-Standort, usw. Es wird dazu neigen, eine große Anzahl der distinct-Befehl die Objekte, die Sie passieren einen bestimmten Punkt in einem system über die Zeit, und die Command-Objekte halten werden unterschiedliche Parameter zur Beschreibung der angeforderte Vorgang.
Das Strategie-Muster, auf der anderen Seite, wird verwendet, um anzugeben wie etwas getan werden sollte, und passt in ein größeres Objekt oder eine Methode, um einen spezifischen Algorithmus. Eine Strategie für die Sortierung könnte ein merge-sort, könnte eine insertion Art, oder vielleicht etwas komplexer wie nur mithilfe von merge-sort, wenn die Liste größer ist als die minimale Größe. Strategie-Objekte sind selten unterzogen, um die Art von Masse mischen über das Command-Objekte sind, sondern oft benutzt wird für die Konfiguration oder für tuning Zwecke.
Beide Muster beinhalten factoring wird der code und ggf. die Parameter für die einzelnen Operationen aus der ursprünglichen Klasse, die Sie in ein anderes Objekt, um unabhängige Variabilität. Die Unterschiede sind in der Verwendung Fälle gestoßen, in der Praxis und die Absicht hinter jedem Muster.
InformationsquelleAutor der Antwort Jeffrey Hantin
Wörter sind bereits vorgegeben. Hier ist der Unterschied in den konkreten code.
InformationsquelleAutor der Antwort BalusC
Strategie - Quicksort oder Mergesort [algo] ändern
Befehl - Öffnen oder Schließen [action] ändern
InformationsquelleAutor der Antwort Fakrudeen
Strategie Muster ist nützlich, wenn Sie mehrere Implementierungen (algorithmen) für eine gegebene Funktion, und Sie möchten, ändern Sie den Algorithmus, der zur Laufzeit je nach Parametertyp.
Ein gutes Beispiel aus HttpServlet code:
service()
Methode wird direkt der Benutzer die Anfrage an die doGet() oder doPost() oder eine andere Methode, je nach Methode Typ.Hervorstechenden Merkmale der Strategie-Muster
Befehl Muster wird benutzt, um die lose Kopplung zwischen Invoker und Receiver. Befehl, ConcreteCommand, Empfänger, Invoker und Kunden sind wichtige Bestandteile in diesem Muster.
Unterschiedlichen Receivern wird ausführen gleichen Befehl durch Invoker & Beton-Befehl, aber die Umsetzung wird der Befehl variieren in jedem Receiver.
Z. B. implementieren Sie das "On" und "Off" - Funktionalität für TV & DVDPlayer. Aber TV und DVDPlayer haben unterschiedliche Implementierung für diese Befehle.
Haben Sie einen Blick auf die unten posten mit code-Beispielen :
Beispiel aus der Praxis, die Strategie-Muster
Mittels Command Design pattern
InformationsquelleAutor der Antwort Ravindra babu
Der Haupt-Unterschied ist , der Befehl führt eine Aktion über das Objekt.
Es kann sich ändern, den Zustand eines Objekts.
Während die Strategie entscheidet, wie das Objekt.
Sie kapselt einige business-Logik.
InformationsquelleAutor der Antwort asif malek