Design patterns gof fr
Upcoming SlideShare
Loading in...5
×
 

Design patterns gof fr

on

  • 869 views

 

Statistics

Views

Total Views
869
Views on SlideShare
869
Embed Views
0

Actions

Likes
0
Downloads
43
Comments
0

0 Embeds 0

No embeds

Accessibility

Categories

Upload Details

Uploaded via as Microsoft PowerPoint

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

Design patterns gof fr Design patterns gof fr Presentation Transcript

  • les Design Patterns Sun Certified Enterprise Architect for J2EE™ 1
  • vous serez en mesure de répondre aux objectifssuivants J2EE technologie de larchitectedexamen:• Partir dune liste, sélectionnez le modèle de conception le plus approprié pour un scénario donné.• Indiquer les avantages de lutilisation de modèles de conception.• Identifier le modèle de conception gamma associé à une fonctionnalité spécifiée J2EE. 2
  • 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 dun 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 lapplication, vous devez utiliser le modèle 3
  • Patterns créationnelles 4
  • • Schémas créationnel peuvent soutenir la création dobjets 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 navez 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 dobjets qui peuvent être créés au sein dun système. 5
  • Motif Fabrique Abstraite• Ce modèle fournit une interface pour créer des familles dobjets liés ou dépendants sans spécifier leurs classes concrètes. 6
  • 7
  • • 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 quil crée les familles dobjets apparentés. 8
  • AVANTAGES• Les isolats classes concrètes.• Rend échanger familles de produits faciles.• Favorise la cohérence (cohérence) parmi les produits. 9
  • 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 lune des multiples familles de produits, par exemple, Microsoft Windows ou Apple classes de McIntosh.• La famille dobjets produits connexes est conçue pour être utilisés ensemble, et vous devez respecter cette contrainte. Cest 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 10
  • Motif Builder• Le modèle Builder sépare la construction dun 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 lobjet.• Cela simplifie la création dobjets complexes en définissant une classe qui construit les instances dune autre classe. 11
  • 12
  • AVANTAGES• Vous permet de varier la représentation interne dun 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 13
  • QUAND UTILISER• Lalgorithme pour créer un objet complexe doit être indépendante des deux parties qui composent lobjet et la manière dont ces pièces sont assemblées.• Le processus de construction doit permettre des représentations différentes de lobjet construit 14
  • 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 dusine dune classe de reporter linstanciation 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 dintroduire de nouvelles classes sans modifier le code parce que la nouvelle classe implémente seulement linterface afin quil puisse être utilisé par le client. 15
  • 16
  • 17
  • Avantages• Élimine le besoin de lier les classes dapplication dans votre code.• Le code ne traite que de linterface, vous pouvez donc travailler avec toutes les classes qui mettent en œuvre cette interface.• Permet les sous-classes de fournir une version étendue dun objet, car la création dun objet dans une classe est plus souple que la création de lobjet directement dans le client. 18
  • Quand utiliser• Une classe ne peut pas nous réjouissons à la classe des objets quil faut créer.• Une classe veut que ses sous-classes de spécifier les objets quil crée.• Déléguer la responsabilité des classes à lun des sous- classes daide de plusieurs, et vous voulez localiser la connaissance de ce qui l’aide de sous classe est le délégué. 19
  • 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 dobjets à 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 dobjets.• La création initiatrices objet crée alors les objets en demandant aux objets prototypiques de faire des copies deux-mêmes. 20
  • 21
  • 22
  • AVANTAGES• Ajout et suppression de produits à lexé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 dune application avec les classes dynamiquement 23
  • QUAND UTILISER• Les classes à instancier sont spécifiées à lexécution, par exemple, le chargement dynamique.• Afin déviter la construction dune hiérarchie de classes dusines qui est parallèle à la hiérarchie des classes de produits.• Lorsque les instances dune classe peut avoir lune des seules quelques combinaisons différentes de lEtat. 24
  • Pattern Singleton• Le modèle Singleton garantit quune classe na quun seul exemple, et fournit un point daccès globale à cette classe.• Il sassure que tous les objets qui utilisent une instance de cette classe utilisent la même instance. 25
  • 26
  • AVANTAGES• Accès contrôlé à instance unique• Espace de nom réduit• Permis de raffinement des opérations et de la représentation• Permis dun nombre variable dinstances• Plus flexible que les opérations de la classe 27
  • Quant utiliser• Il doit y avoir exactement une instance dune classe. 28
  • schémas structurels 29
  • • 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. 30
  • pattern Adaptateur• Le modèle de ladaptateur agit comme un intermédiaire entre deux classes, la conversion de linterface dune classe afin quil puisse être utilisé avec lautre.• 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 dune classe nest pas connu pour ses clients.• Un objet adaptateur fournit la fonctionnalité dune interface sans avoir à connaître la classe utilisée pour implémenter cette interface. 31
  • 32
  • Un adaptateur de classe utilise lhéritagemultiple pour adapter une interface àlautre: Un adaptateur objet sappuie sur la composition objet: 33
  • Avantage• Permet à deux ou plusieurs objets incompatibles de communiquer et dinteragir• Améliore la réutilisabilité des anciennes fonctionnalités 34
  • QUAND UTILISER• Vous voulez utiliser une classe existante, et son interface ne correspond pas à linterface 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 nont pas nécessairement des interfaces compatibles.• Vous voulez utiliser un objet dans un environnement qui prévoit une interface qui est différente de linterface de lobjet.• Traduction de linterface entre les sources multiples doivent se produire. 35
  • Motif pont• Le modèle de pont divise un composant complexe en deux hiérarchies dhéritage distincts mais liés:• labstraction fonctionnelle et l’implémentation interne.• Cela rend plus facile à changer ou lautre aspect de la composante de sorte que les deux peuvent varier indépendamment. 36
  • • Le modèle de pont est utile quand il existe une hiérarchie dabstractions 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. 37
  • 38
  • 39
  • Avantage• Vous permet de séparer linterface (fonctionnalité abstraction) de la mise en œuvre• améliore lextensibilité• Masque les détails d’implémentation des clients 40
  • 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 à laide des sous-classes.• Les changements dans l’implémentation dune abstraction ne devrait avoir aucun impact sur les clients, cest vous ne devriez pas avoir à recompiler leur code. 41
  • pattern Composite• Le modèle Composite vous permet de créer des structures darbre 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 darbre 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 dobjets uniformément. 42
  • 43
  • 44
  • Avantage• Définit les hiérarchies de classe comprenant des objets primitifs et objets composites• Rend plus facile dajouter de nouveaux types de composants• Fournit la flexibilité de la structure et une interface facile à gérer 45
  • QUAND UTILISER• Vous voulez représenter lensemble de la hiérarchie ou une partie de la hiérarchie des objets.• Vous voulez que les clients dêtre en mesure dignorer la différence entre les compositions des objets et des objets individuels.• La structure peut avoir nimporte quel niveau de complexité, et est dynamique. 46
  • Pattern Décorateur• Le pattern Décorateur vous permet dajouter ou supprimer des fonctionnalités de lobjet sans changer laspect extérieur ou la fonction de lobjet.• Il modifie la fonctionnalité dun objet dans une manière qui est transparente pour ses clients en utilisant une instance dune sous-classe de la classe dorigine que les opérations de délégués à lobjet 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 dhéritage fixe. 47
  • 48
  • 49
  • AVANTAGES• Plus de souplesse que lhéritage fixes• rester loin de classes dentité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 lobjet• Améliore lextensibilité de lobjet, car vous faites des changements par le codage de nouvelles classes 50
  • QUAND UTILISER• Vous voulez ajouter des responsabilités à des objets individuels dynamique et transparente, qui est, sans affecter dautres objets.• Vous voulez ajouter des responsabilités à lobjet que vous pourriez vouloir changer dans le futur.• Lorsque lextension en dérivant fixe est impossible. 51
  • pattern Façade• Le pattern Façade fournit une interface unifiée à un groupe dinterfaces 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 daccéder à un objet sous- système en utilisant linterface pour communiquer avec le sous-système. 52
  • 53
  • 54
  • 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 dautres parties du système dutiliser 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. 55
  • 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 dimplémentation dune abstraction.• Vous voulez de votre couche de sous-systèmes. 56
  • Motif flyweight• Le modèle Flyweight réduit le nombre de bas-niveau, les objets détaillés dans un système par partage dobjets.• Si les instances dune 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) dinstances multiples qui contiennent les mêmes informations en partageant une seule instance. 57
  • 58
  • Logically there is an object for every occurrence of agiven character in the document: 59
  • 60
  • 61
  • AVANTAGES• Réduction du nombre dobjets à manipuler• Réduction de la mémoire et sur les périphériques de stockage, si les objets sont conservés 62
  • Quand utiliser• Lapplication utilise un grand nombre dobjets.• Les coûts de stockage sont élevés en raison de la quantité dobjets.• Lapplication ne dépend pas de lidentité des objets. 63
  • pattern Proxy• Le modèle de procuration prévoit un substitut (délégation) ou lespace réservé (conteneur) objet à contrôler laccès à lobjet original.• Il existe plusieurs types dimplémentations du pattern Proxy avec le proxy à distance et par procuration virtuel étant le plus commun. 64
  • 65
  • 66
  • Avantages• Un proxy distant peut cacher le fait quun objet se trouve dans un espace dadressage différent.• Un proxy virtuel peut effectuer des optimisations, telles que la création dun objet sur demande.• Un proxy de protection contrôle laccès à lobjet original 67
  • QUAND UTILISER• Vous avez besoin dune référence plus polyvalent ou sophistiqué à un objet dun simple pointeur. 68
  • comportements• Schémas comportementaux influencent la manière dont lEtat 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é dune application. 69
  • La chaîne de modèle de responsabilité• La chaîne de modèle de responsabilité établit une chaîne au sein dun système, de sorte quun message peut être traitée au niveau où il est dabord reçu, ou être dirigé vers un objet qui peut la gérer. 70
  • 71
  • 72
  • 73
  • 74
  • Avantages• Réduction de couplage• Flexibilité dans lattribution 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 75
  • Quand utiliser• Plus dun objet peut traiter une demande, et le gestionnaire nest pas connu.• Vous souhaitez émettre une demande à lun de plusieurs objets sans spécifier explicitement le récepteur.• Lensemble des objets qui peuvent traiter une demande doit être spécifié dynamiquement. 76
  • 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 nimporte quel autre objet. 77
  • 78
  • 79
  • 80
  • avantages• Sépare lobjet qui appelle lopération de celui qui sait comment lexécuter.• Il est facile dajouter de nouvelles commandes, parce que vous navez pas à changer les classes existantes. 81
  • Quand utiliser• Vous souhaitez paramétrer les objets par une action à effectuer.• Vous spécifiez, file dattente, et dexécuter des requêtes à des moments différents.• Vous devez appuyer undo , loggin, ou de transactions. 82
  • Pattern interpréteur 83
  • 84
  • Avantages• Facile à modifier et détendre la grammaire• L’implémentation de la grammaire est facile 85
  • Quand utiliser• La grammaire de la langue est simple.• Lefficacité nest pas une préoccupation essentielle. 86
  • 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. 87
  • 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 linterface de la collection 88
  • Quand utiliser• Accéder aux contenus objet de collection, sans exposer sa représentation interne.• Soutien traversées multiples dobjets dans une collection.• Fournir une interface uniforme pour traverser les différentes structures dans une collection. 89
  • 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 dautres 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. 90
  • 91
  • 92
  • 93
  • Avantages• collègues découple• Simplifie protocoles dobjets• centralise le contrôle• Les composants individuels deviennent plus simples et plus faciles à traiter, parce quils nont plus besoin de passer directement des messages les uns aux autres• Les composants sont plus générique, parce quils nont plus besoin de contenir la logique pour faire face à leur communication avec les autres composants. 94
  • Quand utiliser• Un ensemble dobjets 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. 95
  • Motif Memento• Le modèle Memento préserve un «instantané» (photo) de létat dun objet, de sorte que lobjet peut retourner à son état dorigine sans avoir à rendre public son contenu pour le reste du monde. 96
  • 97
  • Avantages• Préserve les frontières dencapsulation• Simplifie lauteur 98
  • Quand utiliser• Un instantané de létat dun objet doit être enregistré afin quil peut être restauré à cet état plus tard.• En utilisant une interface directe pour obtenir létat exposerait les détails dimplémentation et de briser lencapsulation de lobjet. 99
  • 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 litération comme décrit précédemment. 100
  • 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. 101
  • 102
  • Gestionnaire des changements Simple estbien quand plusieurs mises à jour ne sontpas un problème 103
  • Avantages• Résumé de couplage entre le sujet et lobservateur• Prise en charge de la communication par radiodiffusion 104
  • Quand utiliser• Un changement à un objet nécessite un changement de lautre objet et que vous ne savez pas combien dobjets ont besoin de changer.• Un objet doit être en mesure de notifier dautres objets sans faire dhypothèses (supposition) sur lidentité de ces objets. 105
  • State Pattern• The State pattern allows an object to alter its behavior when its internal state changes. The object appears to change its class. 106
  • Avantages• Localise lEtat le comportement spécifique et le comportement des partitions pour les différents états• Rend les transitions détat explicites 107
  • Quant utiliser• Le comportement dun objet dépend de son état et il doit changer son comportement lors de lexécution en fonction de cet état.• Les opérations ont grand multiparti des instructions conditionnelles qui dépendent de létat de lobjet. 108
  • 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. 109
  • 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 lapplication. 110
  • QUAND UTILISER• Beaucoup de classes connexes ne diffèrent que par leur comportement.• Vous avez besoin de différentes variantes dun algorithme.• Un algorithme utilise des données inconnues aux clients. 111
  • 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 dun 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 dun algorithme sans changer la structure de lalgorithme. 112
  • 113
  • Avantages• Technique fondamentale pour la réutilisation de code 114
  • QUAND UTILISER• Vous souhaitez mettre en œuvre les parties invariantes dun 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. 115
  • Motif des visiteurs• Le modèle des visiteurs offre une maintenable, moyen facile de représenter une opération à effectuer sur les éléments dune structure de lobjet.• 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. 116
  • 117
  • 118
  • Avantages• Permet dajouter facilement de nouvelles opérations• Recueille les opérations connexes et sans rapport avec celles sépare 119
  • Quand utiliser• Une structure de lobjet contient de nombreuses classes dobjets 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 lobjet changent rarement, mais vous voulez souvent à définir de nouvelles opérations sur la structure. 120
  • Objets comme arguments• Un objet visiteurs est largument dune opération polymorphique Accepter sur les objets quil visite.• Le visiteur nest jamais considérée comme une partie de ces objets, même si lalternative classique à la tendance est de distribuer le code des visiteurs à travers les classes structure de lobjet. 121
  • 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 daccéder et de traverser les composants dun objet global. 122
  • Les expéditeurs et les récepteurs dedécouplage 123
  • Christopher Alexander a dit:• Il est possible de rendre les bâtiments en enfilant (série) ainsi que les modèles, dune manière assez lâche.• Un bâtiment a fait comme cela, est un assemblage de motifs. Il nest pas dense. Il nest 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). 124