J'ai commencé à étudier les modèles de conception récemment, et une chose que je code conviendrait parfaitement au modèle de stratégie, à l'exception d'une petite différence.
Essentiellement, certains (mais pas tous) de mes algorithmes ont besoin d'un ou deux paramètres supplémentaires qui leur sont transmis.
Je vais donc devoir
- leur passer un paramètre supplémentaire lorsque j'invoque leur méthode de calcul
ou
- les stocker en tant que variables dans la classe ConcreteAlgorithm, et pouvoir les mettre à jour avant d'appeler l'algorithme.
Existe-t-il un modèle de conception pour ce besoin / Comment pourrais-je l'implémenter tout en respectant le modèle de stratégie?
J'ai envisagé de passer l'objet client à tous les algorithmes et d'y stocker les variables, puis de ne l'utiliser que lorsque l'algorithme en a besoin. Cependant, je pense que cela est à la fois difficile à manier et va à l'encontre du point du modèle de stratégie.
Juste pour être clair, je l'implémente en Java, et donc je n'ai pas le luxe de paramètres facultatifs (ce qui résoudrait bien cela).