SlideShare uma empresa Scribd logo
1 de 124
les Design Patterns




      Sun Certified Enterprise Architect for J2EE™




                                                 1
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.




                                                                      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 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             3
Patterns créationnelles




                      4
• 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.
                                                           5
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.




                                                             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 qu'il crée les familles d'objets
  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 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                                            10
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.
                                                            11
12
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




                                                         13
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




                                                              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 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.
                                                            15
16
17
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.

                                                           18
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é.
                                                             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 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.
                                                              20
21
22
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

                                                           23
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.



                                                           24
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.




                                                               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 d'un nombre variable d'instances
• Plus flexible que les opérations de la classe



                                                  27
Quant utiliser


• Il doit y avoir exactement une instance d'une 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 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.
                                                              31
32
Un adaptateur de classe utilise l'héritage
multiple pour adapter une interface à
l'autre:




    Un adaptateur objet s'appuie sur la composition objet:




                                                             33
Avantage


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




                                                              34
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.                                       35
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.




                                                             36
• 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.



                                                          37
38
39
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




                                                       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 à 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.



                                                               41
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.


                                                            42
43
44
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




                                                                45
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.



                                                           46
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.

                                                               47
48
49
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

                                                         50
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.




                                                          51
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.


                                                             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 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.
                                                         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 d'implémentation d'une 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 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.




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




                                                   59
60
61
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




                                                        62
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.




                                                          63
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.




                                                              64
65
66
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




                                                           67
QUAND UTILISER


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




                                                        68
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.




                                                           69
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.




                                                     70
71
72
73
74
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




                                                             75
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.




                                                       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 n'importe quel autre objet.




                                                         77
78
79
80
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.




                                                         81
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.




                                                               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.
• L'efficacité n'est 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 l'interface de la collection




                                                             88
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.




                                                          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 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.




                                                             90
91
92
93
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.


                                                              94
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.




                                                           95
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.




                                                                96
97
Avantages


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




                                            98
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.




                                                             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 l'ité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 est
bien quand plusieurs mises à jour ne sont
pas un problème




                                       103
Avantages


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

• Prise en charge de la communication par radiodiffusion




                                                           104
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.




                                                            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 l'Etat 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 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.




                                                         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 l'application.




                                                           110
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.




                                                         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 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.




                                                        112
113
Avantages


• Technique fondamentale pour la réutilisation de code




                                                         114
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.



                                                               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 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.




                                                            116
117
118
Avantages


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




                                                           119
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.




                                                            120
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.




                                                          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 d'accéder et de
  traverser les composants d'un objet global.



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




                                       123
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).


                                                               124

Mais conteúdo relacionado

Destaque

Der Perfekte Tag für den Mann
Der Perfekte Tag für den MannDer Perfekte Tag für den Mann
Der Perfekte Tag für den Mannriesentyp.com
 
Situer lieu 1º bas
Situer lieu 1º basSituer lieu 1º bas
Situer lieu 1º basDianaM2010
 
Rapport annuel exercice 2013
Rapport annuel exercice 2013Rapport annuel exercice 2013
Rapport annuel exercice 2013hssy
 
Tallertemadeinvestigacin 2 menedez por terminar
Tallertemadeinvestigacin 2 menedez por terminarTallertemadeinvestigacin 2 menedez por terminar
Tallertemadeinvestigacin 2 menedez por terminarFabian Cristancho
 
Unitat 3 l'ésser social i ètic
Unitat 3 l'ésser social i èticUnitat 3 l'ésser social i ètic
Unitat 3 l'ésser social i èticvonlenska
 
je vous aime mes amie de skyblo
je vous aime mes amie de skybloje vous aime mes amie de skyblo
je vous aime mes amie de skybloDamienLeDantec8
 
10 idées de cadeaux incontournables pour accueillir bébé
10 idées de cadeaux incontournables pour accueillir bébé10 idées de cadeaux incontournables pour accueillir bébé
10 idées de cadeaux incontournables pour accueillir bébéRomu
 
International Journal of Engineering Research and Development (IJERD)
International Journal of Engineering Research and Development (IJERD)International Journal of Engineering Research and Development (IJERD)
International Journal of Engineering Research and Development (IJERD)IJERD Editor
 
J.I. González Faus. La difícil laicidad
J.I. González Faus. La difícil laicidadJ.I. González Faus. La difícil laicidad
J.I. González Faus. La difícil laicidadinfocatolicos
 
Bizarreries langue fr
Bizarreries langue frBizarreries langue fr
Bizarreries langue frTchin-Tchin
 
La organizaciã³n de los contenidos (juego de feria)
La organizaciã³n de los contenidos (juego de feria)La organizaciã³n de los contenidos (juego de feria)
La organizaciã³n de los contenidos (juego de feria)jose enrique tellez pacheco
 
Stellungnahme des DAI zum Delsiting und zum Spruchverfahren
Stellungnahme des DAI zum Delsiting und zum SpruchverfahrenStellungnahme des DAI zum Delsiting und zum Spruchverfahren
Stellungnahme des DAI zum Delsiting und zum SpruchverfahrenMartin Arendts
 
EXPOSICION DE PRACTICA #1
EXPOSICION DE PRACTICA #1EXPOSICION DE PRACTICA #1
EXPOSICION DE PRACTICA #1quimicaeqp1
 
Présentation des 10 chapitres des immateriels actifs [mode de compatibilité]
Présentation des 10 chapitres des immateriels actifs [mode de compatibilité]Présentation des 10 chapitres des immateriels actifs [mode de compatibilité]
Présentation des 10 chapitres des immateriels actifs [mode de compatibilité]Anne Laure Bartenay
 
Conférence de presse du 25 novembre 2014
Conférence de presse du 25 novembre 2014Conférence de presse du 25 novembre 2014
Conférence de presse du 25 novembre 2014Bouchaib Samawi
 

Destaque (20)

Der Perfekte Tag für den Mann
Der Perfekte Tag für den MannDer Perfekte Tag für den Mann
Der Perfekte Tag für den Mann
 
Situer lieu 1º bas
Situer lieu 1º basSituer lieu 1º bas
Situer lieu 1º bas
 
DERECHO FINANCIERO
DERECHO FINANCIERODERECHO FINANCIERO
DERECHO FINANCIERO
 
Rapport annuel exercice 2013
Rapport annuel exercice 2013Rapport annuel exercice 2013
Rapport annuel exercice 2013
 
Tallertemadeinvestigacin 2 menedez por terminar
Tallertemadeinvestigacin 2 menedez por terminarTallertemadeinvestigacin 2 menedez por terminar
Tallertemadeinvestigacin 2 menedez por terminar
 
Unitat 3 l'ésser social i ètic
Unitat 3 l'ésser social i èticUnitat 3 l'ésser social i ètic
Unitat 3 l'ésser social i ètic
 
je vous aime mes amie de skyblo
je vous aime mes amie de skybloje vous aime mes amie de skyblo
je vous aime mes amie de skyblo
 
10 idées de cadeaux incontournables pour accueillir bébé
10 idées de cadeaux incontournables pour accueillir bébé10 idées de cadeaux incontournables pour accueillir bébé
10 idées de cadeaux incontournables pour accueillir bébé
 
Aucafé[2]
Aucafé[2]Aucafé[2]
Aucafé[2]
 
International Journal of Engineering Research and Development (IJERD)
International Journal of Engineering Research and Development (IJERD)International Journal of Engineering Research and Development (IJERD)
International Journal of Engineering Research and Development (IJERD)
 
J.I. González Faus. La difícil laicidad
J.I. González Faus. La difícil laicidadJ.I. González Faus. La difícil laicidad
J.I. González Faus. La difícil laicidad
 
Brujula Electoral Mujeres que Crean
Brujula  Electoral Mujeres que CreanBrujula  Electoral Mujeres que Crean
Brujula Electoral Mujeres que Crean
 
Bizarreries langue fr
Bizarreries langue frBizarreries langue fr
Bizarreries langue fr
 
La organizaciã³n de los contenidos (juego de feria)
La organizaciã³n de los contenidos (juego de feria)La organizaciã³n de los contenidos (juego de feria)
La organizaciã³n de los contenidos (juego de feria)
 
Stellungnahme des DAI zum Delsiting und zum Spruchverfahren
Stellungnahme des DAI zum Delsiting und zum SpruchverfahrenStellungnahme des DAI zum Delsiting und zum Spruchverfahren
Stellungnahme des DAI zum Delsiting und zum Spruchverfahren
 
EXPOSICION DE PRACTICA #1
EXPOSICION DE PRACTICA #1EXPOSICION DE PRACTICA #1
EXPOSICION DE PRACTICA #1
 
Genesis
GenesisGenesis
Genesis
 
Clasificación de patentes y su utilidad. INAPI
Clasificación de patentes y su utilidad. INAPIClasificación de patentes y su utilidad. INAPI
Clasificación de patentes y su utilidad. INAPI
 
Présentation des 10 chapitres des immateriels actifs [mode de compatibilité]
Présentation des 10 chapitres des immateriels actifs [mode de compatibilité]Présentation des 10 chapitres des immateriels actifs [mode de compatibilité]
Présentation des 10 chapitres des immateriels actifs [mode de compatibilité]
 
Conférence de presse du 25 novembre 2014
Conférence de presse du 25 novembre 2014Conférence de presse du 25 novembre 2014
Conférence de presse du 25 novembre 2014
 

Semelhante a Design patterns gof fr

Module development Patterns de Création.pptx
Module development Patterns de Création.pptxModule development Patterns de Création.pptx
Module development Patterns de Création.pptxarapilatico
 
Design patterns - Exemples en Java
Design patterns - Exemples en JavaDesign patterns - Exemples en Java
Design patterns - Exemples en JavaOussama BEN KHIROUN
 
DesignPatternsISI.pdf
DesignPatternsISI.pdfDesignPatternsISI.pdf
DesignPatternsISI.pdfandre543581
 
OOP & Design Pattern - Algiers Developers Meetup August 2015
OOP & Design Pattern - Algiers Developers Meetup August 2015OOP & Design Pattern - Algiers Developers Meetup August 2015
OOP & Design Pattern - Algiers Developers Meetup August 2015Tarik Zakaria Benmerar
 
Cours php & Mysql - 4éme partie
Cours php & Mysql - 4éme partieCours php & Mysql - 4éme partie
Cours php & Mysql - 4éme partiekadzaki
 
Design patterns comportementaux
Design patterns comportementauxDesign patterns comportementaux
Design patterns comportementauxYannick Chartois
 
Introduction à l'objet - Deuxième année ISIMA
Introduction à l'objet - Deuxième année ISIMAIntroduction à l'objet - Deuxième année ISIMA
Introduction à l'objet - Deuxième année ISIMALoic Yon
 
[DevTestday] Azure devtestlab - Mikael Krief
[DevTestday] Azure devtestlab - Mikael Krief[DevTestday] Azure devtestlab - Mikael Krief
[DevTestday] Azure devtestlab - Mikael KriefCellenza
 
L'outil MDA acceleo.pptx
L'outil MDA acceleo.pptxL'outil MDA acceleo.pptx
L'outil MDA acceleo.pptxSamirAwad14
 
Design patterns et Design Emergeant - Micro Days - Modern Software Developmen...
Design patterns et Design Emergeant - Micro Days - Modern Software Developmen...Design patterns et Design Emergeant - Micro Days - Modern Software Developmen...
Design patterns et Design Emergeant - Micro Days - Modern Software Developmen...Tarik Zakaria Benmerar
 
Introduction à Hibernate p.1
Introduction à Hibernate p.1Introduction à Hibernate p.1
Introduction à Hibernate p.1ATHMAN HAJ-HAMOU
 
DEVASC_Module_8 - Plateformes cisco et Developpement.pptx
DEVASC_Module_8 - Plateformes cisco et Developpement.pptxDEVASC_Module_8 - Plateformes cisco et Developpement.pptx
DEVASC_Module_8 - Plateformes cisco et Developpement.pptxTasnimBenAmmar
 
Tp1 design patternappliques
Tp1 design patternappliquesTp1 design patternappliques
Tp1 design patternappliquesMariem ZAOUALI
 

Semelhante a Design patterns gof fr (20)

Module development Patterns de Création.pptx
Module development Patterns de Création.pptxModule development Patterns de Création.pptx
Module development Patterns de Création.pptx
 
Abstract factory+adapter
Abstract factory+adapterAbstract factory+adapter
Abstract factory+adapter
 
Design patterns - Exemples en Java
Design patterns - Exemples en JavaDesign patterns - Exemples en Java
Design patterns - Exemples en Java
 
Design patterns
Design patternsDesign patterns
Design patterns
 
Patrons de conception
Patrons de conceptionPatrons de conception
Patrons de conception
 
DesignPatternsISI.pdf
DesignPatternsISI.pdfDesignPatternsISI.pdf
DesignPatternsISI.pdf
 
OOP and Design Patterns
OOP and Design PatternsOOP and Design Patterns
OOP and Design Patterns
 
OOP & Design Pattern - Algiers Developers Meetup August 2015
OOP & Design Pattern - Algiers Developers Meetup August 2015OOP & Design Pattern - Algiers Developers Meetup August 2015
OOP & Design Pattern - Algiers Developers Meetup August 2015
 
Cours dao
Cours daoCours dao
Cours dao
 
Cours jdbc
Cours jdbcCours jdbc
Cours jdbc
 
Cours php & Mysql - 4éme partie
Cours php & Mysql - 4éme partieCours php & Mysql - 4éme partie
Cours php & Mysql - 4éme partie
 
Cours_Java.pdf
Cours_Java.pdfCours_Java.pdf
Cours_Java.pdf
 
Design patterns comportementaux
Design patterns comportementauxDesign patterns comportementaux
Design patterns comportementaux
 
Introduction à l'objet - Deuxième année ISIMA
Introduction à l'objet - Deuxième année ISIMAIntroduction à l'objet - Deuxième année ISIMA
Introduction à l'objet - Deuxième année ISIMA
 
[DevTestday] Azure devtestlab - Mikael Krief
[DevTestday] Azure devtestlab - Mikael Krief[DevTestday] Azure devtestlab - Mikael Krief
[DevTestday] Azure devtestlab - Mikael Krief
 
L'outil MDA acceleo.pptx
L'outil MDA acceleo.pptxL'outil MDA acceleo.pptx
L'outil MDA acceleo.pptx
 
Design patterns et Design Emergeant - Micro Days - Modern Software Developmen...
Design patterns et Design Emergeant - Micro Days - Modern Software Developmen...Design patterns et Design Emergeant - Micro Days - Modern Software Developmen...
Design patterns et Design Emergeant - Micro Days - Modern Software Developmen...
 
Introduction à Hibernate p.1
Introduction à Hibernate p.1Introduction à Hibernate p.1
Introduction à Hibernate p.1
 
DEVASC_Module_8 - Plateformes cisco et Developpement.pptx
DEVASC_Module_8 - Plateformes cisco et Developpement.pptxDEVASC_Module_8 - Plateformes cisco et Developpement.pptx
DEVASC_Module_8 - Plateformes cisco et Developpement.pptx
 
Tp1 design patternappliques
Tp1 design patternappliquesTp1 design patternappliques
Tp1 design patternappliques
 

Mais de It Academy

Chapter 12:Understanding Server-Side Technologies
Chapter 12:Understanding Server-Side TechnologiesChapter 12:Understanding Server-Side Technologies
Chapter 12:Understanding Server-Side TechnologiesIt Academy
 
Chapter 10:Understanding Java Related Platforms and Integration Technologies
Chapter 10:Understanding Java Related Platforms and Integration TechnologiesChapter 10:Understanding Java Related Platforms and Integration Technologies
Chapter 10:Understanding Java Related Platforms and Integration TechnologiesIt Academy
 
Chapter 11:Understanding Client-Side Technologies
Chapter 11:Understanding Client-Side TechnologiesChapter 11:Understanding Client-Side Technologies
Chapter 11:Understanding Client-Side TechnologiesIt Academy
 
Chapter 9:Representing Object-Oriented Concepts with UML
Chapter 9:Representing Object-Oriented Concepts with UMLChapter 9:Representing Object-Oriented Concepts with UML
Chapter 9:Representing Object-Oriented Concepts with UMLIt Academy
 
Chapter8:Understanding Polymorphism
Chapter8:Understanding PolymorphismChapter8:Understanding Polymorphism
Chapter8:Understanding PolymorphismIt Academy
 
Chapter 7:Understanding Class Inheritance
Chapter 7:Understanding Class InheritanceChapter 7:Understanding Class Inheritance
Chapter 7:Understanding Class InheritanceIt Academy
 
Chapter 6:Working with Classes and Their Relationships
Chapter 6:Working with Classes and Their RelationshipsChapter 6:Working with Classes and Their Relationships
Chapter 6:Working with Classes and Their RelationshipsIt Academy
 
Chapter 5:Understanding Variable Scope and Class Construction
Chapter 5:Understanding Variable Scope and Class ConstructionChapter 5:Understanding Variable Scope and Class Construction
Chapter 5:Understanding Variable Scope and Class ConstructionIt Academy
 
Chapter 4:Object-Oriented Basic Concepts
Chapter 4:Object-Oriented Basic ConceptsChapter 4:Object-Oriented Basic Concepts
Chapter 4:Object-Oriented Basic ConceptsIt Academy
 
Chapter 3:Programming with Java Operators and Strings
Chapter 3:Programming with Java Operators and  StringsChapter 3:Programming with Java Operators and  Strings
Chapter 3:Programming with Java Operators and StringsIt Academy
 
Chapter 3 : Programming with Java Operators and Strings
Chapter 3 : Programming with Java Operators and  StringsChapter 3 : Programming with Java Operators and  Strings
Chapter 3 : Programming with Java Operators and StringsIt Academy
 
Chapter 2 : Programming with Java Statements
Chapter 2 : Programming with Java StatementsChapter 2 : Programming with Java Statements
Chapter 2 : Programming with Java StatementsIt Academy
 
chap 10 : Development (scjp/ocjp)
chap 10 : Development (scjp/ocjp)chap 10 : Development (scjp/ocjp)
chap 10 : Development (scjp/ocjp)It Academy
 
Chap 9 : I/O and Streams (scjp/ocjp)
Chap 9 : I/O and Streams (scjp/ocjp)Chap 9 : I/O and Streams (scjp/ocjp)
Chap 9 : I/O and Streams (scjp/ocjp)It Academy
 
chap 8 : The java.lang and java.util Packages (scjp/ocjp)
chap 8 : The java.lang and java.util Packages (scjp/ocjp)chap 8 : The java.lang and java.util Packages (scjp/ocjp)
chap 8 : The java.lang and java.util Packages (scjp/ocjp)It Academy
 
chap 7 : Threads (scjp/ocjp)
chap 7 : Threads (scjp/ocjp)chap 7 : Threads (scjp/ocjp)
chap 7 : Threads (scjp/ocjp)It Academy
 
chap 6 : Objects and classes (scjp/ocjp)
chap 6 : Objects and classes (scjp/ocjp)chap 6 : Objects and classes (scjp/ocjp)
chap 6 : Objects and classes (scjp/ocjp)It Academy
 
chap4 ; Flow Control, Assertions, and Exception Handling (scjp/ocjp)
chap4 ; Flow Control, Assertions, and Exception Handling (scjp/ocjp)chap4 ; Flow Control, Assertions, and Exception Handling (scjp/ocjp)
chap4 ; Flow Control, Assertions, and Exception Handling (scjp/ocjp)It Academy
 

Mais de It Academy (20)

Chapter 12:Understanding Server-Side Technologies
Chapter 12:Understanding Server-Side TechnologiesChapter 12:Understanding Server-Side Technologies
Chapter 12:Understanding Server-Side Technologies
 
Chapter 10:Understanding Java Related Platforms and Integration Technologies
Chapter 10:Understanding Java Related Platforms and Integration TechnologiesChapter 10:Understanding Java Related Platforms and Integration Technologies
Chapter 10:Understanding Java Related Platforms and Integration Technologies
 
Chapter 11:Understanding Client-Side Technologies
Chapter 11:Understanding Client-Side TechnologiesChapter 11:Understanding Client-Side Technologies
Chapter 11:Understanding Client-Side Technologies
 
Chapter 9:Representing Object-Oriented Concepts with UML
Chapter 9:Representing Object-Oriented Concepts with UMLChapter 9:Representing Object-Oriented Concepts with UML
Chapter 9:Representing Object-Oriented Concepts with UML
 
Chapter8:Understanding Polymorphism
Chapter8:Understanding PolymorphismChapter8:Understanding Polymorphism
Chapter8:Understanding Polymorphism
 
Chapter 7:Understanding Class Inheritance
Chapter 7:Understanding Class InheritanceChapter 7:Understanding Class Inheritance
Chapter 7:Understanding Class Inheritance
 
Chapter 6:Working with Classes and Their Relationships
Chapter 6:Working with Classes and Their RelationshipsChapter 6:Working with Classes and Their Relationships
Chapter 6:Working with Classes and Their Relationships
 
Chapter 5:Understanding Variable Scope and Class Construction
Chapter 5:Understanding Variable Scope and Class ConstructionChapter 5:Understanding Variable Scope and Class Construction
Chapter 5:Understanding Variable Scope and Class Construction
 
Chapter 4:Object-Oriented Basic Concepts
Chapter 4:Object-Oriented Basic ConceptsChapter 4:Object-Oriented Basic Concepts
Chapter 4:Object-Oriented Basic Concepts
 
Chapter 3:Programming with Java Operators and Strings
Chapter 3:Programming with Java Operators and  StringsChapter 3:Programming with Java Operators and  Strings
Chapter 3:Programming with Java Operators and Strings
 
Chapter 3
Chapter 3Chapter 3
Chapter 3
 
Chapter 3 : Programming with Java Operators and Strings
Chapter 3 : Programming with Java Operators and  StringsChapter 3 : Programming with Java Operators and  Strings
Chapter 3 : Programming with Java Operators and Strings
 
Chapter 2 : Programming with Java Statements
Chapter 2 : Programming with Java StatementsChapter 2 : Programming with Java Statements
Chapter 2 : Programming with Java Statements
 
Chapter 1 :
Chapter 1 : Chapter 1 :
Chapter 1 :
 
chap 10 : Development (scjp/ocjp)
chap 10 : Development (scjp/ocjp)chap 10 : Development (scjp/ocjp)
chap 10 : Development (scjp/ocjp)
 
Chap 9 : I/O and Streams (scjp/ocjp)
Chap 9 : I/O and Streams (scjp/ocjp)Chap 9 : I/O and Streams (scjp/ocjp)
Chap 9 : I/O and Streams (scjp/ocjp)
 
chap 8 : The java.lang and java.util Packages (scjp/ocjp)
chap 8 : The java.lang and java.util Packages (scjp/ocjp)chap 8 : The java.lang and java.util Packages (scjp/ocjp)
chap 8 : The java.lang and java.util Packages (scjp/ocjp)
 
chap 7 : Threads (scjp/ocjp)
chap 7 : Threads (scjp/ocjp)chap 7 : Threads (scjp/ocjp)
chap 7 : Threads (scjp/ocjp)
 
chap 6 : Objects and classes (scjp/ocjp)
chap 6 : Objects and classes (scjp/ocjp)chap 6 : Objects and classes (scjp/ocjp)
chap 6 : Objects and classes (scjp/ocjp)
 
chap4 ; Flow Control, Assertions, and Exception Handling (scjp/ocjp)
chap4 ; Flow Control, Assertions, and Exception Handling (scjp/ocjp)chap4 ; Flow Control, Assertions, and Exception Handling (scjp/ocjp)
chap4 ; Flow Control, Assertions, and Exception Handling (scjp/ocjp)
 

Design patterns gof fr

  • 1. les Design Patterns Sun Certified Enterprise Architect for J2EE™ 1
  • 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. 2
  • 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 3
  • 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. 5
  • 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. 6
  • 7. 7
  • 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. 8
  • 9. AVANTAGES • Les isolats classes concrètes. • Rend échanger familles de produits faciles. • Favorise la cohérence (cohérence) parmi les produits. 9
  • 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 10
  • 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. 11
  • 12. 12
  • 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 13
  • 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 14
  • 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. 15
  • 16. 16
  • 17. 17
  • 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. 18
  • 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é. 19
  • 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. 20
  • 21. 21
  • 22. 22
  • 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 23
  • 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. 24
  • 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. 25
  • 26. 26
  • 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 27
  • 28. Quant utiliser • Il doit y avoir exactement une instance d'une classe. 28
  • 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. 30
  • 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. 31
  • 32. 32
  • 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: 33
  • 34. Avantage • Permet à deux ou plusieurs objets incompatibles de communiquer et d'interagir • Améliore la réutilisabilité des anciennes fonctionnalités 34
  • 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. 35
  • 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. 36
  • 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. 37
  • 38. 38
  • 39. 39
  • 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 40
  • 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. 41
  • 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. 42
  • 43. 43
  • 44. 44
  • 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 45
  • 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. 46
  • 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. 47
  • 48. 48
  • 49. 49
  • 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 50
  • 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. 51
  • 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. 52
  • 53. 53
  • 54. 54
  • 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. 55
  • 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. 56
  • 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. 57
  • 58. 58
  • 59. Logically there is an object for every occurrence of a given character in the document: 59
  • 60. 60
  • 61. 61
  • 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 62
  • 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. 63
  • 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. 64
  • 65. 65
  • 66. 66
  • 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 67
  • 68. QUAND UTILISER • Vous avez besoin d'une référence plus polyvalent ou sophistiqué à un objet d'un simple pointeur. 68
  • 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. 69
  • 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. 70
  • 71. 71
  • 72. 72
  • 73. 73
  • 74. 74
  • 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 75
  • 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. 76
  • 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. 77
  • 78. 78
  • 79. 79
  • 80. 80
  • 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. 81
  • 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. 82
  • 84. 84
  • 85. Avantages • Facile à modifier et d'étendre la grammaire • L’implémentation de la grammaire est facile 85
  • 86. Quand utiliser • La grammaire de la langue est simple. • L'efficacité n'est pas une préoccupation essentielle. 86
  • 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. 87
  • 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 88
  • 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. 89
  • 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. 90
  • 91. 91
  • 92. 92
  • 93. 93
  • 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. 94
  • 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. 95
  • 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. 96
  • 97. 97
  • 98. Avantages • Préserve les frontières d'encapsulation • Simplifie l'auteur 98
  • 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. 99
  • 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. 100
  • 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. 101
  • 102. 102
  • 103. Gestionnaire des changements Simple est bien quand plusieurs mises à jour ne sont pas un problème 103
  • 104. Avantages • Résumé de couplage entre le sujet et l'observateur • Prise en charge de la communication par radiodiffusion 104
  • 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. 105
  • 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. 106
  • 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 107
  • 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. 108
  • 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. 109
  • 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. 110
  • 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. 111
  • 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. 112
  • 113. 113
  • 114. Avantages • Technique fondamentale pour la réutilisation de code 114
  • 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. 115
  • 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. 116
  • 117. 117
  • 118. 118
  • 119. Avantages • Permet d'ajouter facilement de nouvelles opérations • Recueille les opérations connexes et sans rapport avec celles sépare 119
  • 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. 120
  • 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. 121
  • 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. 122
  • 123. Les expéditeurs et les récepteurs de découplage 123
  • 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). 124