Bonjour tout le monde,
Je me pose une question sur le pattern stratégie, question à laquelle je ne trouve pas de réponse satisfaisante.
Imaginons que je souhaite gérer une hiérarchie d'objets ayant une classe de base, que j'appellerai Acteur.
Mes différents acteurs pourront alors effectuer un certain nombre de traitements, ces traitements dépendront de plusieurs choses : l'état courant de l'instance d'acteur, et éventuellement le type d'acteur.
Je pense donc illico au pattern Stratégie, mis en place de cette façon :
Me vient alors une question à laquelle j'ai du mal à répondre : Les traitements effectués par mes différentes stratégies vont avoir des répercutions sur l'état de mon acteur. Comment m'y prendre ?
Je réponds instinctivement à cette question en autorisant un couplage fort entre ma classe Acteur et ma classe Strategie : la stratégie aura connaissance de l'acteur sur lequel elle agit. Il s'agit donc d'une dépendance à double sens : L'acteur connait la stratégie, et la stratégie connait l'acteur. Cela me pose quelques problèmes, d'ordre moral, mais ne voyant pas d'autre solution, je m'y fais.
C'est alors qu'une nouvelle catégorie d'acteurs voit le jour : des acteurs sujets aux même comportements, et donc aux mêmes stratégies, mais où ces mêmes stratégies n'influeront pas sur l'état, ou alors de manière différente.
Comment résoudre ce problème ?
Partager