design patterns gof fr

124
1 les Design Patterns Sun Certified Enterprise Architect for J2EE™

Upload: it-academy

Post on 05-Dec-2014

954 views

Category:

Documents


2 download

DESCRIPTION

 

TRANSCRIPT

Page 1: Design patterns gof fr

1

les Design Patterns

Sun Certified Enterprise Architect for J2EE™

haloum
Page 2: Design patterns gof fr

2

vous serez en mesure de répondre aux objectifs suivants J2EE technologie de l'architecte d'examen:

• Partir d'une liste, sélectionnez le modèle de conception le plus approprié pour un scénario donné.

• Indiquer les avantages de l'utilisation de modèles de conception.• Identifier le modèle de conception gamma associé à une

fonctionnalité spécifiée J2EE.

Page 3: Design patterns gof fr

3

Discussion • Un modèle de conception est une solution commune à

un problème commun rencontré dans le développement de logiciels.• Nom - Un label pour identifier le problème, la solution, et

les conséquences d'un motif. Le nom du motif doit être descriptif et maintenue à un ou deux mots.• Description - Une brève description du modèle, un

diagramme UML, et l'échantillon de code sont tous utilisés pour aider à définir le motif.• Avantages - Décrit les avantages en utilisant le modèle

spécifié• Quand utiliser - Décrit le moment où dans la conception

de l'application, vous devez utiliser le modèle

Page 4: Design patterns gof fr

4

Patterns créationnelles

Page 5: Design patterns gof fr

5

• Schémas créationnel peuvent soutenir la création d'objets dans un système.• Schémas créationnel permettent aux objets d'être créé

dans un système sans avoir à identifier un type de classe spécifique dans le code, vous n'avez donc pas besoin d'écrire de grandes, code complexe pour instancier un objet.• Il fait cela en ayant la sous-classe de la classe de créer

les objets.• Toutefois, cela peut limiter le type ou le nombre d'objets

qui peuvent être créés au sein d'un système.

Page 6: Design patterns gof fr

6

Motif Fabrique Abstraite

• Ce modèle fournit une interface pour créer des familles d'objets liés ou dépendants sans spécifier leurs classes concrètes.

Page 7: Design patterns gof fr

7

Page 8: Design patterns gof fr

8

• Le motif Fabrique Abstraite fournit une classe abstraite qui détermine la classe appropriée concrète à instancier pour créer un ensemble de produits de béton qui implémentent une interface standard.• Le client interagit uniquement avec les interfaces du

produit et la classe Abstract Factory.• Le client ne sait jamais sur les classes de la construction

en béton, fournies par ce modèle.• Le motif Fabrique Abstraite est similaire au modèle de

méthode de fabrique, sauf qu'il crée les familles d'objets apparentés.

Page 9: Design patterns gof fr

9

AVANTAGES

• Les isolats classes concrètes.• Rend échanger familles de produits faciles.• Favorise la cohérence (cohérence) parmi les produits.

Page 10: Design patterns gof fr

10

QUAND UTILISER

• Le système doit être indépendant de la façon dont ses produits sont créés, composés et représentés.• Le système doit être configuré avec l'une des multiples

familles de produits, par exemple, Microsoft Windows ou Apple classes de McIntosh.• La famille d'objets produits connexes est conçue pour

être utilisés ensemble, et vous devez respecter cette contrainte. C'est le point clé du modèle, sinon vous pourriez utiliser une méthode de fabrique.• Vous souhaitez fournir une bibliothèque de classes de

produits, et exposent que leurs interfaces, et non leurs implémentations

Page 11: Design patterns gof fr

11

Motif Builder

• Le modèle Builder sépare la construction d'un objet complexe de sa représentation de sorte que le processus de construction mêmes peuvent créer des objets différents.• Le modèle Builder permet un objet client pour construire

un objet complexe en précisant que son type et son contenu.• Le client est protégé contre les détails de construction de

l'objet.• Cela simplifie la création d'objets complexes en

définissant une classe qui construit les instances d'une autre classe.

Page 12: Design patterns gof fr

12

Page 13: Design patterns gof fr

13

AVANTAGES

• Vous permet de varier la représentation interne d'un produit.• Les isolats du code de la construction et de

représentation (méthodes de service).• Vous donne plus de contrôle sur le processus de

construction

Page 14: Design patterns gof fr

14

QUAND UTILISER

• L'algorithme pour créer un objet complexe doit être indépendante des deux parties qui composent l'objet et la manière dont ces pièces sont assemblées.

• Le processus de construction doit permettre des représentations différentes de l'objet construit

Page 15: Design patterns gof fr

15

Motif méthode de fabrique

• Le modèle de méthode de fabrique définit une interface pour créer un objet, mais permet de les sous-classes de décider quelle classe à instancier.• La méthode permet d'usine d'une classe de reporter

l'instanciation des sous-classes, ce qui est utile pour construire des objets individuels dans un but précis, sans connaître le demandeur de la classe spécifique étant instancié.• Cela vous permet d'introduire de nouvelles classes sans

modifier le code parce que la nouvelle classe implémente seulement l'interface afin qu'il puisse être utilisé par le client.

Page 16: Design patterns gof fr

16

Page 17: Design patterns gof fr

17

Page 18: Design patterns gof fr

18

Avantages

• Élimine le besoin de lier les classes d'application dans votre code.• Le code ne traite que de l'interface, vous pouvez donc

travailler avec toutes les classes qui mettent en œuvre cette interface.• Permet les sous-classes de fournir une version étendue

d'un objet, car la création d'un objet dans une classe est plus souple que la création de l'objet directement dans le client.

Page 19: Design patterns gof fr

19

Quand utiliser

• Une classe ne peut pas nous réjouissons à la classe des objets qu'il faut créer.

• Une classe veut que ses sous-classes de spécifier les objets qu'il crée.

• Déléguer la responsabilité des classes à l'un des sous-classes d'aide de plusieurs, et vous voulez localiser la connaissance de ce qui l’aide de sous classe est le délégué.

Page 20: Design patterns gof fr

20

Motif Prototype

• Le modèle prototype permet à un objet pour créer des objets personnalisés sans connaître leur classe exacte ou les détails de comment les créer.• Il précise les types d'objets à créer en utilisant une

instance prototypique, et crée de nouveaux objets en copiant ce prototype.• Le modèle prototype fonctionne en donnant des objets

prototypiques à un objet et initie alors la création d'objets.• La création initiatrices objet crée alors les objets en

demandant aux objets prototypiques de faire des copies d'eux-mêmes.

Page 21: Design patterns gof fr

21

Page 22: Design patterns gof fr

22

Page 23: Design patterns gof fr

23

AVANTAGES

• Ajout et suppression de produits à l'exécution• Spécification de nouveaux objets en faisant varier les

valeurs• Spécification de nouveaux objets en faisant varier la

structure• Réduction sous-classes• Configuration d'une application avec les classes

dynamiquement

Page 24: Design patterns gof fr

24

QUAND UTILISER

• Les classes à instancier sont spécifiées à l'exécution, par exemple, le chargement dynamique.• Afin d'éviter la construction d'une hiérarchie de classes

d'usines qui est parallèle à la hiérarchie des classes de produits.• Lorsque les instances d'une classe peut avoir l'une des

seules quelques combinaisons différentes de l'Etat.

Page 25: Design patterns gof fr

25

Pattern Singleton

• Le modèle Singleton garantit qu'une classe n'a qu'un seul exemple, et fournit un point d'accès globale à cette classe.• Il s'assure que tous les objets qui utilisent une instance

de cette classe utilisent la même instance.

Page 26: Design patterns gof fr

26

Page 27: Design patterns gof fr

27

AVANTAGES

• Accès contrôlé à instance unique• Espace de nom réduit• Permis de raffinement des opérations et de la

représentation• Permis d'un nombre variable d'instances• Plus flexible que les opérations de la classe

Page 28: Design patterns gof fr

28

Quant utiliser

• Il doit y avoir exactement une instance d'une classe.

Page 29: Design patterns gof fr

29

schémas structurels

Page 30: Design patterns gof fr

30

• Motifs structurels de contrôle des relations entre de grandes portions de vos applications.• Schémas structurels affectent les applications dans une

variété de façons, par exemple, le motif adaptateur permet à deux systèmes incompatibles pour communiquer, tandis que le modèle de façade vous permet de présenter une version simplifiée inter-face à un utilisateur sans avoir à retirer toutes les options disponibles dans le système.• Modèles structurels permettent de créer des systèmes

sans avoir à réécrire ou de personnaliser le code.• Cela fournit le système avec la réutilisabilité améliorée et

des fonctionnalités robustes.

Page 31: Design patterns gof fr

31

pattern Adaptateur

• Le modèle de l'adaptateur agit comme un intermédiaire entre deux classes, la conversion de l'interface d'une classe afin qu'il puisse être utilisé avec l'autre.• Cela permet à des classes avec des interfaces incompatibles à

travailler ensemble.• Le motif adaptateur implémente une interface connue de ses

clients et fournit un accès à une instance d'une classe n'est pas connu pour ses clients.• Un objet adaptateur fournit la fonctionnalité d'une interface sans

avoir à connaître la classe utilisée pour implémenter cette interface.

Page 32: Design patterns gof fr

32

Page 33: Design patterns gof fr

33

Un adaptateur de classe utilise l'héritage multiple pour adapter une interface à l'autre:

Un adaptateur objet s'appuie sur la composition objet:

Page 34: Design patterns gof fr

34

Avantage

• Permet à deux ou plusieurs objets incompatibles de communiquer et d'interagir• Améliore la réutilisabilité des anciennes fonctionnalités

Page 35: Design patterns gof fr

35

QUAND UTILISER

• Vous voulez utiliser une classe existante, et son interface ne correspond pas à l'interface dont vous avez besoin• Vous voulez créer une classe réutilisable qui coopère

avec des classes sans lien ou imprévues, qui est, les classes qui n'ont pas nécessairement des interfaces compatibles.• Vous voulez utiliser un objet dans un environnement qui

prévoit une interface qui est différente de l'interface de l'objet.• Traduction de l'interface entre les sources multiples

doivent se produire.

Page 36: Design patterns gof fr

36

Motif pont

• Le modèle de pont divise un composant complexe en deux hiérarchies d'héritage distincts mais liés:• l'abstraction fonctionnelle et l’implémentation interne.• Cela rend plus facile à changer ou l'autre aspect de la

composante de sorte que les deux peuvent varier indépendamment.

Page 37: Design patterns gof fr

37

• Le modèle de pont est utile quand il existe une hiérarchie d'abstractions et une hiérarchie correspondante des implémentations.

• Plutôt que de combiner les abstractions et les implémentations en plusieurs catégories distinctes, le modèle implémente le Pont des abstractions et des implémentations de classes indépendantes qui peuvent être combinés de façon dynamique.

Page 38: Design patterns gof fr

38

Page 39: Design patterns gof fr

39

Page 40: Design patterns gof fr

40

Avantage

• Vous permet de séparer l'interface (fonctionnalité abstraction) de la mise en œuvre• améliore l'extensibilité• Masque les détails d’implémentation des clients

Page 41: Design patterns gof fr

41

Quand utilise

• Vous voulez éviter une liaison permanente entre une abstraction et son implémentation.• Tant les abstractions et leurs implémentations devraient être

extensible à l'aide des sous-classes.• Les changements dans l’implémentation d'une abstraction ne

devrait avoir aucun impact sur les clients, c'est vous ne devriez pas avoir à recompiler leur code.

Page 42: Design patterns gof fr

42

pattern Composite

• Le modèle Composite vous permet de créer des structures d'arbre hiérarchique de complexité variable, tout en permettant à chaque élément de la structure de fonctionner avec une interface uniforme.• Le modèle composite combine des objets dans des

structures d'arbre pour représenter la hiérarchie soit tout ou partie de la hiérarchie.• Cela signifie que le modèle composite permet aux clients

de traiter des objets individuels et des compositions d'objets uniformément.

Page 43: Design patterns gof fr

43

Page 44: Design patterns gof fr

44

Page 45: Design patterns gof fr

45

Avantage

• Définit les hiérarchies de classe comprenant des objets primitifs et objets composites• Rend plus facile d'ajouter de nouveaux types de composants

• Fournit la flexibilité de la structure et une interface facile à gérer

Page 46: Design patterns gof fr

46

QUAND UTILISER

• Vous voulez représenter l'ensemble de la hiérarchie ou une partie de la hiérarchie des objets.• Vous voulez que les clients d'être en mesure d'ignorer la

différence entre les compositions des objets et des objets individuels.• La structure peut avoir n'importe quel niveau de

complexité, et est dynamique.

Page 47: Design patterns gof fr

47

Pattern Décorateur

• Le pattern Décorateur vous permet d'ajouter ou supprimer des fonctionnalités de l'objet sans changer l'aspect extérieur ou la fonction de l'objet.• Il modifie la fonctionnalité d'un objet dans une manière qui est

transparente pour ses clients en utilisant une instance d'une sous-classe de la classe d'origine que les opérations de délégués à l'objet original.• Le pattern Décorateur attache des responsabilités

supplémentaires à un objet dynamique pour fournir une alternative flexible à l'évolution des fonctionnalités des objets sans utiliser d'héritage fixe.

Page 48: Design patterns gof fr

48

Page 49: Design patterns gof fr

49

Page 50: Design patterns gof fr

50

AVANTAGES

• Plus de souplesse que l'héritage fixes• rester loin de classes d'entités chargées en haut dans la

hiérarchie• Simplifie le codage parce que vous écrivez une série de

classes, chacune ciblant une partie spécifique de la fonctionnalité plutôt que de coder tous les comportements dans l'objet• Améliore l'extensibilité de l'objet, car vous faites des

changements par le codage de nouvelles classes

Page 51: Design patterns gof fr

51

QUAND UTILISER

• Vous voulez ajouter des responsabilités à des objets individuels dynamique et transparente, qui est, sans affecter d'autres objets.• Vous voulez ajouter des responsabilités à l'objet que

vous pourriez vouloir changer dans le futur.• Lorsque l'extension en dérivant fixe est impossible.

Page 52: Design patterns gof fr

52

pattern Façade

• Le pattern Façade fournit une interface unifiée à un groupe d'interfaces dans un sous-système.• The Façade pattern defines a higher-level interface that

makes the subsystem easier to use because you have only one interface.

• Cette interface unifiée permet d'accéder à un objet sous-système en utilisant l'interface pour communiquer avec le sous-système.

Page 53: Design patterns gof fr

53

Page 54: Design patterns gof fr

54

Page 55: Design patterns gof fr

55

Avantages

• Fournit une interface simple à un système complexe sans pour autant réduire les possibilités offertes par le système.• protéger les clients à partir de composants sous-

système.• Favorise faible (FAIBLE) couplage entre le sous-système

et ses clients.• Réduit couplage entre sous-systèmes, si chaque sous-

système utilise son modèle de façade propre et d'autres parties du système d'utiliser le modèle de façade pour communiquer avec le sous-système• Traduit les demandes des clients pour les sous-systèmes

qui peuvent répondre à ces demandes.

Page 56: Design patterns gof fr

56

QUAND UTILISER

• Vous voulez offrir une interface simple pour un système complexe.• Il ya de nombreuses dépendances entre les clients et les

classes d'implémentation d'une abstraction.• Vous voulez de votre couche de sous-systèmes.

Page 57: Design patterns gof fr

57

Motif flyweight

• Le modèle Flyweight réduit le nombre de bas-niveau, les objets détaillés dans un système par partage d'objets.• Si les instances d'une classe qui contiennent les mêmes

informations peuvent être utilisées de façon interchangeable, le modèle Flyweight permet à un programme pour éviter la dépense (Cher) d'instances multiples qui contiennent les mêmes informations en partageant une seule instance.

Page 58: Design patterns gof fr

58

Page 59: Design patterns gof fr

59

Logically there is an object for every occurrence of a given character in the document:

Page 60: Design patterns gof fr

60

Page 61: Design patterns gof fr

61

Page 62: Design patterns gof fr

62

AVANTAGES

• Réduction du nombre d'objets à manipuler

• Réduction de la mémoire et sur les périphériques de stockage, si les objets sont conservés

Page 63: Design patterns gof fr

63

Quand utiliser

• L'application utilise un grand nombre d'objets.• Les coûts de stockage sont élevés en raison de la

quantité d'objets.• L'application ne dépend pas de l'identité des objets.

Page 64: Design patterns gof fr

64

pattern Proxy

• Le modèle de procuration prévoit un substitut (délégation) ou l'espace réservé (conteneur) objet à contrôler l'accès à l'objet original.

• Il existe plusieurs types d'implémentations du pattern Proxy avec le proxy à distance et par procuration virtuel étant le plus commun.

Page 65: Design patterns gof fr

65

Page 66: Design patterns gof fr

66

Page 67: Design patterns gof fr

67

Avantages

• Un proxy distant peut cacher le fait qu'un objet se trouve dans un espace d'adressage différent.• Un proxy virtuel peut effectuer des optimisations, telles

que la création d'un objet sur demande.• Un proxy de protection contrôle l'accès à l'objet original

Page 68: Design patterns gof fr

68

QUAND UTILISER

• Vous avez besoin d'une référence plus polyvalent ou sophistiqué à un objet d'un simple pointeur.

Page 69: Design patterns gof fr

69

comportements

• Schémas comportementaux influencent la manière dont l'Etat et le comportement des flux grâce à un système.

• En optimisant la manière dont l'état et le comportement sont transférés et modifiés, vous pouvez simplifier, optimiser et augmenter la maintenabilité d'une application.

Page 70: Design patterns gof fr

70

La chaîne de modèle de responsabilité

• La chaîne de modèle de responsabilité établit une chaîne au sein d'un système, de sorte qu'un message peut être traitée au niveau où il est d'abord reçu, ou être dirigé vers un objet qui peut la gérer.

Page 71: Design patterns gof fr

71

Page 72: Design patterns gof fr

72

Page 73: Design patterns gof fr

73

Page 74: Design patterns gof fr

74

Page 75: Design patterns gof fr

75

Avantages

• Réduction de couplage• Flexibilité dans l'attribution des responsabilités aux objets• Permet à un ensemble de classes de se comporter

comme un tout parce que les événements produits dans une classe peut être envoyé sur les classes autre gestionnaire au sein du composite

Page 76: Design patterns gof fr

76

Quand utiliser

• Plus d'un objet peut traiter une demande, et le gestionnaire n'est pas connu.• Vous souhaitez émettre une demande à l'un de plusieurs

objets sans spécifier explicitement le récepteur.• L'ensemble des objets qui peuvent traiter une demande

doit être spécifié dynamiquement.

Page 77: Design patterns gof fr

77

pattern Commande

• Le schéma de commande encapsule une requête dans un objet, qui vous permet de stocker la commande, passer la commande à une méthode, et le retour de la commande comme n'importe quel autre objet.

Page 78: Design patterns gof fr

78

Page 79: Design patterns gof fr

79

Page 80: Design patterns gof fr

80

Page 81: Design patterns gof fr

81

avantages

• Sépare l'objet qui appelle l'opération de celui qui sait comment l'exécuter.• Il est facile d'ajouter de nouvelles commandes, parce que

vous n'avez pas à changer les classes existantes.

Page 82: Design patterns gof fr

82

Quand utiliser

• Vous souhaitez paramétrer les objets par une action à effectuer.• Vous spécifiez, file d'attente, et d'exécuter des requêtes à

des moments différents.• Vous devez appuyer undo , loggin, ou de transactions.

Page 83: Design patterns gof fr

83

Pattern interpréteur

Page 84: Design patterns gof fr

84

Page 85: Design patterns gof fr

85

Avantages

• Facile à modifier et d'étendre la grammaire• L’implémentation de la grammaire est facile

Page 86: Design patterns gof fr

86

Quand utiliser

• La grammaire de la langue est simple.• L'efficacité n'est pas une préoccupation essentielle.

Page 87: Design patterns gof fr

87

motif itérateur

• Le motif itérateur fournit une manière cohérente de façon séquentielle accéder aux éléments dans une collection qui est indépendante et distincte de la collection sous-jacente.

Page 88: Design patterns gof fr

88

Avantages

• Le motif Iterator fournit une manière cohérente de façon séquentielle accéder aux éléments dans une collection qui est indépendante et distincte de la collection sous-jacente.• Simplifie l'interface de la collection

Page 89: Design patterns gof fr

89

Quand utiliser

• Accéder aux contenus objet de collection, sans exposer sa représentation interne.• Soutien traversées multiples d'objets dans une collection.• Fournir une interface uniforme pour traverser les

différentes structures dans une collection.

Page 90: Design patterns gof fr

90

Motif médiateur

• Le schéma médiateur simplifie la communication entre objets dans un système en introduisant un objet unique qui gère la distribution des messages parmi d'autres objets.• Le schéma médiateur favorise le couplage lâche en gardant les

objets de référence les uns aux autres de façon explicite, et il permet de faire varier indépendamment de leur interaction.

Page 91: Design patterns gof fr

91

Page 92: Design patterns gof fr

92

Page 93: Design patterns gof fr

93

Page 94: Design patterns gof fr

94

Avantages

• collègues découple• Simplifie protocoles d'objets• centralise le contrôle• Les composants individuels deviennent plus simples et

plus faciles à traiter, parce qu'ils n'ont plus besoin de passer directement des messages les uns aux autres• Les composants sont plus générique, parce qu'ils n'ont

plus besoin de contenir la logique pour faire face à leur communication avec les autres composants.

Page 95: Design patterns gof fr

95

Quand utiliser

• Un ensemble d'objets de communiquer de façon bien définie, mais complexe.• Vous souhaitez personnaliser un comportement qui est répartie

entre plusieurs objets sans utiliser les sous-classes.

Page 96: Design patterns gof fr

96

Motif Memento

• Le modèle Memento préserve un «instantané» (photo) de l'état d'un objet, de sorte que l'objet peut retourner à son état d'origine sans avoir à rendre public son contenu pour le reste du monde.

Page 97: Design patterns gof fr

97

Page 98: Design patterns gof fr

98

Avantages

• Préserve les frontières d'encapsulation• Simplifie l'auteur

Page 99: Design patterns gof fr

99

Quand utiliser

• Un instantané de l'état d'un objet doit être enregistré afin qu'il peut être restauré à cet état plus tard.• En utilisant une interface directe pour obtenir l'état

exposerait les détails d'implémentation et de briser l'encapsulation de l'objet.

Page 100: Design patterns gof fr

100

Modèles connexes

• Commande: Les commandes peuvent utiliser des souvenirs de maintenir l'état des opérations annulables.

• Itérateur: Souvenirs peut être utilisée pour l'itération comme décrit précédemment.

Page 101: Design patterns gof fr

101

Motif observateur

• Le modèle Observateur fournit un moyen pour un composant de manière flexible diffuser des messages vers des récepteurs intéressés.• Il définit une dépendance en tête-à-plusieurs entre les

objets de sorte que quand un objet change d'état, tous ses ayants droit sont informés et mis à jour automatiquement.

Page 102: Design patterns gof fr

102

Page 103: Design patterns gof fr

103

Gestionnaire des changements Simple est bien quand plusieurs mises à jour ne sont pas un problème

Page 104: Design patterns gof fr

104

Avantages

• Résumé de couplage entre le sujet et l'observateur

• Prise en charge de la communication par radiodiffusion

Page 105: Design patterns gof fr

105

Quand utiliser

• Un changement à un objet nécessite un changement de l'autre objet et que vous ne savez pas combien d'objets ont besoin de changer.• Un objet doit être en mesure de notifier d'autres objets

sans faire d'hypothèses (supposition) sur l'identité de ces objets.

Page 106: Design patterns gof fr

106

State Pattern

• The State pattern allows an object to alter its behavior when its internal state changes. The object appears to change its class.

Page 107: Design patterns gof fr

107

Avantages

• Localise l'Etat le comportement spécifique et le comportement des partitions pour les différents états• Rend les transitions d'état explicites

Page 108: Design patterns gof fr

108

Quant utiliser

• Le comportement d'un objet dépend de son état et il doit changer son comportement lors de l'exécution en fonction de cet état.• Les opérations ont grand multiparti des instructions

conditionnelles qui dépendent de l'état de l'objet.

Page 109: Design patterns gof fr

109

Pattern de Stratégie

• The Strategy pattern defines a group of classes that represent a set of possible behaviors. • These behaviors can then be used in an application to

change its functionality.

Page 110: Design patterns gof fr

110

Avantages

• Une alternative au sous-classement• Définit chaque comportement dans sa propre classe, ce

qui élimine les instructions conditionnelles• Plus facile à étendre un modèle à intégrer de nouveaux

comportements sans recodage de l'application.

Page 111: Design patterns gof fr

111

QUAND UTILISER

• Beaucoup de classes connexes ne diffèrent que par leur comportement.• Vous avez besoin de différentes variantes d'un

algorithme.• Un algorithme utilise des données inconnues aux clients.

Page 112: Design patterns gof fr

112

Méthode Template de Pattern

• Le Méthode Template de Pattern fournit une méthode qui permet de remplacer les sous-classes parties de la méthode sans le réécrire.• Définir le squelette d'un algorithme dans une opération,

report de certaines mesures pour les sous-classes.• Méthode de modèle permet de sous-classes de redéfinir

certaines étapes d'un algorithme sans changer la structure de l'algorithme.

Page 113: Design patterns gof fr

113

Page 114: Design patterns gof fr

114

Avantages

• Technique fondamentale pour la réutilisation de code

Page 115: Design patterns gof fr

115

QUAND UTILISER

• Vous souhaitez mettre en œuvre les parties invariantes d'un algorithme une fois et utilisez les sous-classes pour implémenter le comportement qui peut varier.

• Lorsque comportement commun chez les sous-classes devraient être pris en compte et localisée dans une classe commune pour éviter la duplication de code.

Page 116: Design patterns gof fr

116

Motif des visiteurs

• Le modèle des visiteurs offre une maintenable, moyen facile de représenter une opération à effectuer sur les éléments d'une structure de l'objet.

• Le modèle des visiteurs vous permet de définir une nouvelle opération sans changer les classes des éléments sur lesquels elle opère.

Page 117: Design patterns gof fr

117

Page 118: Design patterns gof fr

118

Page 119: Design patterns gof fr

119

Avantages

• Permet d'ajouter facilement de nouvelles opérations• Recueille les opérations connexes et sans rapport avec

celles sépare

Page 120: Design patterns gof fr

120

Quand utiliser

• Une structure de l'objet contient de nombreuses classes d'objets avec des interfaces différentes et que vous voulez effectuer des opérations sur ces objets qui dépendent de leurs classes concrètes.• Classes définissant la structure de l'objet changent

rarement, mais vous voulez souvent à définir de nouvelles opérations sur la structure.

Page 121: Design patterns gof fr

121

Objets comme arguments

• Un objet visiteurs est l'argument d'une opération polymorphique Accepter sur les objets qu'il visite.• Le visiteur n'est jamais considérée comme une partie de

ces objets, même si l'alternative classique à la tendance est de distribuer le code des visiteurs à travers les classes structure de l'objet.

Page 122: Design patterns gof fr

122

Encapsulation de Variation

• un objet de stratégie encapsule un algorithme.

• un objet Etat encapsule un comportement dépendant de l'état.

• un objet médiateur encapsule le protocole entre les objets et un objet Itératif encapsule la façon d'accéder et de traverser les composants d'un objet global.

Page 123: Design patterns gof fr

123

Les expéditeurs et les récepteurs de découplage

Page 124: Design patterns gof fr

124

Christopher Alexander a dit:

• Il est possible de rendre les bâtiments en enfilant (série) ainsi que les modèles, d'une manière assez lâche.• Un bâtiment a fait comme cela, est un assemblage de

motifs. Il n'est pas dense. Il n'est pas profonde. Mais il est également possible de mettre ensemble dans les modèles de telle manière que de nombreux schémas se chevauchent dans le même espace physique: le bâtiment est très dense, il a de nombreuses significations capturé dans un petit espace, et grâce à cette densité, il devient profonde (difficile à comprendre).