Recientemente comencé a buscar patrones de diseño, y una cosa que estoy codificando se adaptaría perfectamente al patrón de estrategia, excepto por una pequeña diferencia.
Esencialmente, algunos (pero no todos) de mis algoritmos, necesitan que se les pase uno o dos parámetros adicionales.
Entonces, o bien necesito
- les paso un parámetro extra cuando invoco su método de cálculo
o
- almacénelos como variables dentro de la clase ConcreteAlgorithm y pueda actualizarlos antes de que llame al algoritmo.
¿Existe un patrón de diseño para esta necesidad / ¿Cómo podría implementar esto mientras me apego al Patrón de Estrategia?
He considerado pasar el objeto del cliente a todos los algoritmos, y almacenar las variables allí, luego usarlo solo cuando el algoritmo particular lo necesite. Sin embargo, creo que esto es difícil de manejar y derrota el punto del patrón de estrategia.
Para ser claros, estoy implementando en Java, por lo que no tengo el lujo de parámetros opcionales (lo que resolvería esto muy bien).