Académique Documents
Professionnel Documents
Culture Documents
Paix-Travail-Patrie Peace-Work-Fatherland
-*-*-*- -*-*-*-
UNIVERSITÉ DE YAOUNDE 1 UNIVERSITY OF YAOUNDÉ 1
-*-*-*- -*-*-*-
Faculté des Sciences Faculty of Science
Département d’informatique Département of Computer Science
B.P 812 Yaoundé P.O. Box 812 Yaoundé
Thème :
Membres du groupe :
Encadreur :
M NKOUANDOU Aboubakar
Enseignant à l’université de Yaoundé 1
DESIGN PATTERN STRATEGY
INTRODUCTION ................................................................................................................................. 2
I. PRESENTATION GENERALE DU DESIGN PATTERN STRATEGY ................................ 3
1. Mise en Œuvre : .............................................................................................................................. 3
II. APPLICABILITE ..................................................................................................................... 4
III. SOLUTION ................................................................................................................................ 5
IV. CONSEQUENCES .................................................................................................................... 6
1. Avantages du design pattern strategy : ........................................................................................ 6
2. Inconvénients du design pattern strategy .................................................................................... 6
V. Relations avec d'autres modèles : ................................................................................................ 7
CONCLUSION ...................................................................................................................................... 8
Page 1|8
DESIGN PATTERN STRATEGY
INTRODUCTION
Un design pattern est une façon générique d’organiser ses modules pour répondre à une
problématique peu importe le langage. Il en existe 3 types à savoir :
- Les design patterns de structure : ils définissent comment organiser les classes d’un
programme dans une structure pus large.
- Les design patterns de comportement : ils définissent comment organiser les objets
pour que ceux-ci collaborent et expliquent le fonctionnement des algorithmes
impliqués. C’est le cas du design pattern strategy qui fera l’objet de notre étude.
Page 2|8
DESIGN PATTERN STRATEGY
Le design pattern strategy est un patron de conception de type comportemental qui cherche
principalement à séparer un objet de ses comportements (algorithmes) en encapsulant es
derniers dans des classes à part. Il permet de :
- Définir une famille d’algorithmes, encapsuler chacun d’eux et les rendre
interchangeables.
- Utiliser différents algorithmes identiques sur le plan conceptuel en fonction du contexte
- Permettre aux algorithmes d’évoluer indépendamment des clients qui les utilisent.
1. Mise en Œuvre :
Page 3|8
DESIGN PATTERN STRATEGY
II. APPLICABILITE
Utilisez le modèle de stratégie lorsque vous souhaitez utiliser différentes variantes d'un
algorithme au sein d'un objet et pouvoir passer d'un algorithme à un autre pendant
l'exécution.
Utilisez la stratégie lorsque vous avez beaucoup de classes similaires qui ne diffèrent que
par la façon dont elles exécutent certains comportements.
Le modèle de stratégie vous permet d'extraire le comportement variable dans une hiérarchie
de classes distincte et de combiner les classes d'origine en une seule, réduisant ainsi le code en
double.
Utilisez le modèle pour isoler la logique métier d'une classe des détails d'implémentation
d'algorithmes qui peuvent ne pas être aussi importants dans le contexte de cette logique.
Le modèle de stratégie vous permet d'isoler le code, les données internes et les dépendances
de divers algorithmes du reste du code. Divers clients disposent d'une interface simple pour
exécuter les algorithmes et les basculer au moment de l'exécution.
Utilisez le modèle lorsque votre classe a un opérateur conditionnel massif qui bascule
entre les différentes variantes du même algorithme.
Le modèle de stratégie vous permet de supprimer un tel conditionnel en extrayant tous les
algorithmes dans des classes distinctes, qui implémentent toutes la même interface. L'objet
d'origine délègue l'exécution à l'un de ces objets, au lieu d'implémenter toutes les variantes de
l'algorithme.
Page 4|8
DESIGN PATTERN STRATEGY
III. SOLUTION
- Encapsuler les algorithmes dans une hiérarchie et lier la hiérarchie a l’objet appelant
par composition
- Séparer la sélection de l’algorithme de son implémentation
- Permettre une sélection dynamique basée sur le contexte
Structure :
Page 5|8
DESIGN PATTERN STRATEGY
IV. CONSEQUENCES
L’implémentation d’un design pattern strategy dans une application présente des
conséquences aussi bien positives que négatives.
- Vous pouvez permuter les algorithmes utilisés à l'intérieur d'un objet lors de
l'exécution.
- Vous pouvez isoler les détails d'implémentation d'un algorithme du code qui l'utilise.
- Vous pouvez remplacer l'héritage par la composition.
- Principe ouvert / fermé . Vous pouvez introduire de nouvelles stratégies sans avoir à
changer le contexte.
Si vous n'avez que quelques algorithmes et qu'ils changent rarement, il n'y a pas de
raison réelle de compliquer le programme avec de nouvelles classes et interfaces qui
accompagnent le modèle.
Les clients doivent être conscients des différences entre les stratégies pour pouvoir en
choisir une appropriée.
Page 6|8
DESIGN PATTERN STRATEGY
La commande et la stratégie peuvent se ressembler car vous pouvez utiliser les deux pour
paramétrer un objet avec une action. Cependant, ils ont des intentions très différentes.
Vous pouvez utiliser Command pour convertir n'importe quelle opération en objet. Les
paramètres de l'opération deviennent des champs de cet objet. La conversion vous permet
de différer l'exécution de l'opération, de la mettre en file d'attente, de stocker l'historique
des commandes, d'envoyer des commandes aux services distants, etc.
D'un autre côté, Strategy décrit généralement différentes façons de faire la même chose,
vous permettant d'échanger ces algorithmes dans une seule classe de contexte.
Decorator vous permet de changer la peau d'un objet, tandis que Strategy vous permet de
changer les tripes.
La méthode de modèle est basée sur l'héritage: elle vous permet de modifier des parties
d'un algorithme en étendant ces parties dans des sous-classes. La stratégie est basée sur la
composition: vous pouvez modifier certaines parties du comportement de l'objet en lui
fournissant différentes stratégies correspondant à ce comportement. La méthode Template
fonctionne au niveau de la classe, elle est donc statique. La stratégie fonctionne au niveau
de l'objet, vous permettant de changer de comportement lors de l'exécution.
L'État peut être considéré comme une extension de la stratégie . Les deux modèles sont
basés sur la composition: ils modifient le comportement du contexte en déléguant du
travail à des objets auxiliaires. La stratégie rend ces objets complètement indépendants et
inconscients les uns des autres. Cependant, State ne restreint pas les dépendances entre les
états concrets, les laissant modifier à volonté l'état du contexte.
Page 7|8
DESIGN PATTERN STRATEGY
CONCLUSION
En somme, un design pattern strategy est un patron de conception comportemental qui permet
de définir une famille d'algorithmes, de placer chacun d'eux dans une classe distincte et de
rendre leurs objets interchangeables.
Page 8|8