Bonjour,
J'ai une situation ou je dois résoudre un problème encapsulé dans un seul objet. je dispose d'un ensemble de solvers (algorithmes), chacun permet d'avancer (ou pas) la resolution du problème. Les solvers sont fournis par une librairie externe, je ne peux que les utiliser (je peux les encapsuler dans des classes que je peux manipuler!). Le resultat d'un solver est contenu dans le problème lui même (i.e le probleme est juste moins dur après le passage de ce solver). je fais passer les solvers selon un ordre defini par un choix dynamique en analysant la complexité de probleme. Il se peut qu'un solver ne soit jamais solicité; on fait passer les solvers jusqu'a ce qu'on resoud le probleme, le nombre d'itérations fini biensur (pour pas tourner eternellement)
1. J'ai pensé a utiliser le Pattern Visitor:
Un solver est encapsulé dans un visitor, chaque visitor visite l'objet encapsulant le probleme; un autre pattern (quoi?) analyse l'objet et retourne le visitor a utiliser... ceci jusqu'a resolution de problème ou depassement de nombre maximum d'itération.
2. on m a dit d'essayer le pattern commande: mettre tous les solvers dans une collection de commandes (chaque solver est encapsulé dans une commande) puis les faire passer...
3. les concepts cités dans la description ci-dessus me font penser au pattern Strategy (algo, execution...), mais bon je vois pas trop comment faire !
vous utiliserez quoi a ma place ?
Merci...
Partager