Ich habe vor kurzem angefangen, mich mit Designmustern zu befassen, und eine Sache, die ich codiere, würde perfekt zum Strategiemuster passen, abgesehen von einem kleinen Unterschied.
Im Wesentlichen benötigen einige (aber nicht alle) meiner Algorithmen einen oder zwei zusätzliche Parameter, die an sie übergeben werden.
Also muss ich entweder
- Übergeben Sie ihnen einen zusätzlichen Parameter, wenn ich ihre Berechnungsmethode aufrufe
oder
- Speichern Sie sie als Variablen in der ConcreteAlgorithm-Klasse und können Sie sie aktualisieren, bevor ich den Algorithmus aufrufe.
Gibt es ein Entwurfsmuster für diesen Bedarf / Wie kann ich dies implementieren, während ich mich an das Strategiemuster halte?
Ich habe überlegt, das Client-Objekt an alle Algorithmen zu übergeben, die Variablen dort zu speichern und es dann nur dann zu verwenden, wenn der jeweilige Algorithmus es benötigt. Ich denke jedoch, dass dies sowohl unhandlich ist als auch den Punkt des Strategiemusters zunichte macht.
Um ganz klar zu sein, ich implementiere in Java und habe daher nicht den Luxus optionaler Parameter (was dies gut lösen würde).