Stratégie

( Strategy )

separator line

package précédent white background package suivant

Rational Rose picture

Description


Lorsqu'il existe plusieurs implantations possibles d'un algorithme et qu'il peut être nécessaire d'en choisir une dynamiquement, ce patron propose la délégation de l'exécution de cet algorithme à des objets interchangeables qui respectent une interface commune.

Structure et constituants


Design Patterns picture

  • Strategy définit l'interface d'appel d'un algorithme,
  • Strategy1, Strategy2 et Strategy3 implantent des variantes d'un même algorithme,
  • Context détient le contexte d'exécution.

Collaborations


  • Context lance l'exécution de l'algorithme,
  • Strategy peut avoir besoin de données contextuelles présentes dans Context.

Forces et faiblesses


Design Patterns picture   permet la définition de famille d'algorithmes,

Design Patterns picture   permet le choix de l'algorithme de manière dynamique et adaptée au contexte,

Design Patterns picture   il peut être difficile de prévoir la représentation des paramètres issus du contexte d'exécution qui sont transmis de manière identique à tous les algorithmes concrets.

Utilisation dans CBR*Tools


Ce patron est utilisé pour chacune des phases du raisonnement (classes Retrieve, Resuse, Revise et Retain) ainsi que la réalisation des phases elles-mêmes (classes CaseSetAdpatationFormula et AnalysisAdpatationFormula). Il est également utilisé pour les filtres d'indices (classe IndiceFilter) et dans les similarités (classes ValueSimilarityFct et AggregationFct).

Separator line


Valid XHTML 1.0!

Valid CSS!

Comments

Last modified: Wed Aug 1 16:44:32 MEST 2001