Di recente ho iniziato a esaminare i modelli di progettazione e una cosa che sto codificando si adatta perfettamente al modello di strategia, fatta eccezione per una piccola differenza.
Essenzialmente, alcuni (ma non tutti) i miei algoritmi, hanno bisogno di un parametro aggiuntivo o di due passati a loro.
Quindi avrò bisogno di
- passa 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 si attacca al Modello di strategia?
Ho preso in considerazione il passaggio dell'oggetto client a tutti gli algoritmi e l'archiviazione delle variabili, quindi l'ho utilizzato solo quando l'algoritmo specifico ne ha bisogno. Tuttavia, penso che sia al tempo stesso poco maneggevole e sconfigge il punto del modello strategico.
Per essere chiari, sto implementando in Java e quindi non ho il lusso dei parametri opzionali (che risolvono bene questo aspetto).