Ausgabe
Was ist der Unterschied zwischen dem Strategiemuster und dem Befehlsmuster ? Ich suche auch nach einigen Beispielen in Java.
Lösung
Typischerweise wird das Befehlsmuster verwendet, um aus dem, was getan werden muss , ein Objekt zu machen – um eine Operation und ihre Argumente zu nehmen und sie in einem Objekt zu verpacken, das protokolliert, zum Rückgängigmachen aufbewahrt, an eine entfernte Site gesendet wird usw. Dort wird in der Regel eine große Anzahl unterschiedlicher Command-Objekte sein, die im Laufe der Zeit einen bestimmten Punkt in einem System durchlaufen, und die Command-Objekte enthalten unterschiedliche Parameter, die die angeforderte Operation beschreiben.
Das Strategiemuster hingegen wird verwendet, um anzugeben, wie etwas getan werden soll, und wird in ein größeres Objekt oder eine Methode eingefügt, um einen bestimmten Algorithmus bereitzustellen. Eine Strategie zum Sortieren kann eine Zusammenführungssortierung, eine Einfügungssortierung oder vielleicht etwas Komplexeres sein, wie z. B. die Verwendung einer Zusammenführungssortierung nur, wenn die Liste größer als eine bestimmte Mindestgröße ist. Strategie-Objekte werden selten so massenhaft gemischt wie Command-Objekte, sondern oft für Konfigurations- oder Tuning-Zwecke verwendet.
Bei beiden Mustern werden der Code und möglicherweise Parameter für einzelne Operationen aus der ursprünglichen Klasse, die sie enthielt, in ein anderes Objekt faktorisiert, um eine unabhängige Variabilität zu ermöglichen. Die Unterschiede liegen in den in der Praxis angetroffenen Anwendungsfällen und der Absicht hinter jedem Muster.
Beantwortet von – Jeffrey Hantin
Antwort geprüft von – Katrina (FixError Volunteer)