Ho iniziato a esaminare i modelli di design di recente e una cosa che sto codificando si adatterebbe perfettamente al modello di strategia, fatta eccezione per una piccola differenza.
In sostanza, alcuni (ma non tutti) dei miei algoritmi, hanno bisogno di un parametro aggiuntivo o due passati a loro.
Quindi ne avrò bisogno
- passare loro un parametro extra quando invoco il loro metodo di calcolo
o
- memorizzarli come variabili all'interno della classe ConcreteAlgorithm ed essere in grado di aggiornarli prima di chiamare l'algoritmo.
Esiste un modello di progettazione per questa esigenza / Come potrei implementarlo mentre aderisco al modello di strategia?
Ho preso in considerazione il passaggio dell'oggetto client a tutti gli algoritmi e la memorizzazione delle variabili al suo interno, per poi usarlo solo quando il particolare algoritmo ne ha bisogno. Tuttavia, penso che sia ingombrante e sconfigge il punto del modello di strategia.
Giusto per essere chiaro, sto implementando in Java, e quindi non ho il lusso di parametri opzionali (che lo risolverebbero bene).