SlideShare une entreprise Scribd logo
1  sur  21
patrons de conception
« Design patterns »
Maaroufi Mohamed Amine
2017-2018
Plan
Introduction
Types de patrons
Exemples d’un patron
Avantages d'utiliser des patrons
Introduction
Qu'est ce qu'un patron de conception ?
 L'utilisation actuelle vient des travaux de l'architecte Christopher
Alexander
 Alexander a étudié les manières d'améliorer le processus de
conception de bâtiments et des zones urbaines
 Chaque patron est une règle en 3 parties, qui exprime une
relation entre un certain contexte, un problème et une solution.”
 “ Chaque patron est une règle en 3 parties, qui exprime une
relation entre un certain contexte, un problème et une solution.”
 La définition habituelle d'un patron est : “Une solution à un
problème dans un contexte.”
Pourquoi utiliser les patrons ?
 "Concevoir un logiciel orienté-objet est difficile, et concevoir un
logiciel orienté-objet réutilisable est encore plus difficile." - Erich
Gamma,
 Les concepteurs expérimentés réutilise des solutions qui ont
fonctionné dans le passé,
 Les systèmes orientés-objet bien structurés suivent des patrons
récurrents pour les classes et objets,
 Les patrons qui ont fonctionné dans le passé permettent d'être
plus productif. Les conceptions qui en résultent sont plus
flexibles et réutilisables.
Types de patrons
Types de patrons logiciels
Les chercheurs mentionnent 3 types de patron logiciels.
1. Patrons conceptuels
Patrons dont la forme est décrite par les termes et concepts du domaine
d'application
2. Patrons de conception
Patrons dont la forme est décrite par les éléments de construction de
conception logicielle (par exemple objets, classes, héritage et aggrégats)
3. Patrons de programmation
Patron dont la forme est décrite par les éléments de construction du langage
de programmation
Classification du Gang of Four « GoF » pour les
patrons de conception
On distingue trois familles de patrons de conception selon leur utilisation :
1. Patrons de création
Concernent le processus de la création d'objets
Les patrons de création aident à créer des objets pour vous, au lieu d’avoir à
instancier les objets directement.
2. Patrons de structure
Concernent la composition de classes et d'objets
Les patrons de structure aident à composer des groupes d’objets en des structures
plus larges, telles que des interfaces utilisateur complexes.
3. Patrons de comportement
Concernent l'interaction des classes et des objets
Les patrons de comportement aident à définir la communication entre les objets du
système et définir comment le flux est controlé.
1. Patrons de création
 Fabrique
Une méthode dans une classe dérivée créé les instances associées
 Fabrique abstraite
Fabrique pour construire des objets liés
 Monteur
Fabrique pour construire des objets complexes de manière incrémentale
 Prototype
Fabrique pour cloner de nouvelles instances d'un prototype
 Singleton
Fabrique pour n'avoir qu'une seule et unique instance
2. Patrons de structure
 Adaptateur
Un traducteur qui adapte une interface de serveur pour un client
 Pont
Découpler l'interface d'une classe et son implémentation
 Objet composite
Structure pour construire des aggrégats récursifs
 Décorateur
Etend un objet de manière transparente
 Façade
Façade simplifie l'interface pour un sous-système
 Poids-mouche
De nombreux objets partagés efficacement
 Proxy
Un objet est l'approximation d'un autre
3. Patrons de comportement
 Chaine de responsabilité
Requête déléguée au fournisseur de service responsable
 Commande
Requête comme objet de première classe
 Interpréteur
Interpréteur de langage pour une petite grammaire
 Itérateur
Eléments d'un agrégat sont atteints séquentiellement
 Médiateur
Médiateur coordonnes les interactions entre ses associés
 Memento
Une photo qui capture et restaure des états d'objets
3. Patrons de comportement
 Observateur
Les observateurs sont mis au courant des changements des observés
 Etat
Object dont le comportement dépend de son état
 Stratégie
Abstraction pour la sélection d'un parmi plusieurs algorithmes
 Patron de méthode
Algorithme avec des pas fournit par une classe dérivée
 Visiteur
Opérations appliquée aux éléments d'une structure d'objet hétérogène
Exemples
Exemple 1
Problématique
L’interface propriétaire ne correspond pas à celle utilisée dans
notre code, le système existant ne peut donc pas utiliser la classe
propriétaire.
Exemple 1
Solution : Créer un adaptateur
Exemple 2
Problématique :
Un serveur web gère des documents destinés aux clients. La
classe abstraite Document a été définie pour cette gestion. Une
première classe d’implantation de cette interface a été réalisée :
DocumentHTML. Mais l’ajout de documents PDF a posé un problème
(car plus complexes à construire et à gérer que html), Un composant
de marché a été choisi et doit être intégré à l’application (classe
ComposantPDF) mais son interface ne correspond pas à celle de
Document.
Exemple 2
Solution :
Utiliser le pattern Adaptateur pour que le serveur Web puisse
gérer des documents HTML et PDF. Spécifier l'implémentation de la
nouvelle classe.
Avantages d'utiliser
des patrons
Bénéfices des patrons de conception
 Capturent l'expertise et la rendent accessible à des non-experts
 Réduisent le temps de développement
 Facilitent la communication entre les développeurs en fournissant un
langage commun
 Facilitent la réutilisation réussie de conceptions
 Améliorent la documentation de conception
 Améliorent la compréhensibilité des conceptions
Références
Design Patterns: Elements of Reusable Object-Oriented Software,
Gamma, Helm, Johnson and Vlissides, Addison-Wesley, 1995
https://fr.wikibooks.org/wiki/Patrons_de_conception
https://github.com/dieforfree/edsebooks/blob/master/ebooks/Desig
n%20Patterns%2C%20Elements%20of%20Reusable%20Object-
Oriented%20Software.pdf
Patrons de conception

Contenu connexe

Tendances

patron de conception
patron de conception patron de conception
patron de conception Shili Mohamed
 
Correction Examen 2016-2017 POO .pdf
Correction Examen 2016-2017 POO .pdfCorrection Examen 2016-2017 POO .pdf
Correction Examen 2016-2017 POO .pdfslimyaich3
 
Chp3 - Diagramme de Classes
Chp3 - Diagramme de ClassesChp3 - Diagramme de Classes
Chp3 - Diagramme de ClassesLilia Sfaxi
 
Chp2 - Diagramme des Cas d'Utilisation
Chp2 - Diagramme des Cas d'UtilisationChp2 - Diagramme des Cas d'Utilisation
Chp2 - Diagramme des Cas d'UtilisationLilia Sfaxi
 
Tp1 - WS avec JAXWS
Tp1 - WS avec JAXWSTp1 - WS avec JAXWS
Tp1 - WS avec JAXWSLilia Sfaxi
 
Design Pattern introduction
Design Pattern introductionDesign Pattern introduction
Design Pattern introductionneuros
 
L Architecture Logicielle En Pratique
L Architecture Logicielle En PratiqueL Architecture Logicielle En Pratique
L Architecture Logicielle En PratiqueFrançois Trudel
 
diagramme de séquence UML
diagramme de séquence UMLdiagramme de séquence UML
diagramme de séquence UMLAmir Souissi
 

Tendances (20)

Support Java Avancé Troisième Partie
Support Java Avancé Troisième PartieSupport Java Avancé Troisième Partie
Support Java Avancé Troisième Partie
 
patron de conception
patron de conception patron de conception
patron de conception
 
Support de cours technologie et application m.youssfi
Support de cours technologie et application m.youssfiSupport de cours technologie et application m.youssfi
Support de cours technologie et application m.youssfi
 
Cours design pattern m youssfi partie 6 proxy
Cours design pattern m youssfi partie 6 proxyCours design pattern m youssfi partie 6 proxy
Cours design pattern m youssfi partie 6 proxy
 
Correction Examen 2016-2017 POO .pdf
Correction Examen 2016-2017 POO .pdfCorrection Examen 2016-2017 POO .pdf
Correction Examen 2016-2017 POO .pdf
 
Support JEE Spring Inversion de Controle IOC et Spring MVC
Support JEE Spring Inversion de Controle IOC et Spring MVCSupport JEE Spring Inversion de Controle IOC et Spring MVC
Support JEE Spring Inversion de Controle IOC et Spring MVC
 
Chp3 - Diagramme de Classes
Chp3 - Diagramme de ClassesChp3 - Diagramme de Classes
Chp3 - Diagramme de Classes
 
Chp2 - Diagramme des Cas d'Utilisation
Chp2 - Diagramme des Cas d'UtilisationChp2 - Diagramme des Cas d'Utilisation
Chp2 - Diagramme des Cas d'Utilisation
 
Cours design pattern m youssfi partie 3 decorateur
Cours design pattern m youssfi partie 3 decorateurCours design pattern m youssfi partie 3 decorateur
Cours design pattern m youssfi partie 3 decorateur
 
Angular Avancé
Angular AvancéAngular Avancé
Angular Avancé
 
Support de cours Spring M.youssfi
Support de cours Spring  M.youssfiSupport de cours Spring  M.youssfi
Support de cours Spring M.youssfi
 
Tp1 - WS avec JAXWS
Tp1 - WS avec JAXWSTp1 - WS avec JAXWS
Tp1 - WS avec JAXWS
 
Design Pattern introduction
Design Pattern introductionDesign Pattern introduction
Design Pattern introduction
 
Corrige tp java
Corrige tp javaCorrige tp java
Corrige tp java
 
L Architecture Logicielle En Pratique
L Architecture Logicielle En PratiqueL Architecture Logicielle En Pratique
L Architecture Logicielle En Pratique
 
Introduction àJava
Introduction àJavaIntroduction àJava
Introduction àJava
 
diagramme de séquence UML
diagramme de séquence UMLdiagramme de séquence UML
diagramme de séquence UML
 
Support Web Services SOAP et RESTful Mr YOUSSFI
Support Web Services SOAP et RESTful Mr YOUSSFISupport Web Services SOAP et RESTful Mr YOUSSFI
Support Web Services SOAP et RESTful Mr YOUSSFI
 
Cours design pattern m youssfi partie 5 adapter
Cours design pattern m youssfi partie 5 adapterCours design pattern m youssfi partie 5 adapter
Cours design pattern m youssfi partie 5 adapter
 
Spring ioc
Spring iocSpring ioc
Spring ioc
 

Similaire à Patrons de conception

Patrons de creation
Patrons de creationPatrons de creation
Patrons de creationomri med
 
Design Pattern: Développement et Bonnes pratiques
Design Pattern: Développement et Bonnes pratiquesDesign Pattern: Développement et Bonnes pratiques
Design Pattern: Développement et Bonnes pratiquesAlex Wilfried OUATTARA
 
Design patterns gof fr
Design patterns gof frDesign patterns gof fr
Design patterns gof frIt Academy
 
Entity_framework_db first
Entity_framework_db firstEntity_framework_db first
Entity_framework_db firstZineb ELGARRAI
 
DesignPatternsISI.pdf
DesignPatternsISI.pdfDesignPatternsISI.pdf
DesignPatternsISI.pdfandre543581
 
Design patterns - Exemples en Java
Design patterns - Exemples en JavaDesign patterns - Exemples en Java
Design patterns - Exemples en JavaOussama BEN KHIROUN
 
Rex Software Factories 20140117 - Ensim
Rex Software Factories 20140117 - EnsimRex Software Factories 20140117 - Ensim
Rex Software Factories 20140117 - EnsimLaurent Broudoux
 
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 french
Design patterns frenchDesign patterns french
Design patterns frenchmeriem sari
 
Créer et intégrer son thème PrestaShop
Créer et intégrer son thème PrestaShopCréer et intégrer son thème PrestaShop
Créer et intégrer son thème PrestaShopPrestaShop
 
Drupal 7 - Fondamentaux et ateliers
Drupal 7 - Fondamentaux et ateliersDrupal 7 - Fondamentaux et ateliers
Drupal 7 - Fondamentaux et ateliersFrédéric Simonet
 
Framework Orienté objet
Framework Orienté objetFramework Orienté objet
Framework Orienté objetNSim Technology
 
srep_cours_06.pdf
srep_cours_06.pdfsrep_cours_06.pdf
srep_cours_06.pdfSamirAwad14
 
Asp.net Présentation de L'application "Organizer"
Asp.net Présentation de L'application "Organizer"Asp.net Présentation de L'application "Organizer"
Asp.net Présentation de L'application "Organizer"Nazih Heni
 

Similaire à Patrons de conception (20)

Patrons de creation
Patrons de creationPatrons de creation
Patrons de creation
 
Design Pattern: Développement et Bonnes pratiques
Design Pattern: Développement et Bonnes pratiquesDesign Pattern: Développement et Bonnes pratiques
Design Pattern: Développement et Bonnes pratiques
 
Design patterns gof fr
Design patterns gof frDesign patterns gof fr
Design patterns gof fr
 
Entity_framework_db first
Entity_framework_db firstEntity_framework_db first
Entity_framework_db first
 
DesignPatternsISI.pdf
DesignPatternsISI.pdfDesignPatternsISI.pdf
DesignPatternsISI.pdf
 
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
 
Design patterns
Design patternsDesign patterns
Design patterns
 
Rex Software Factories 20140117 - Ensim
Rex Software Factories 20140117 - EnsimRex Software Factories 20140117 - Ensim
Rex Software Factories 20140117 - Ensim
 
Présentation cice telos
Présentation cice   telosPrésentation cice   telos
Présentation cice telos
 
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
 
2-Composants.docx
2-Composants.docx2-Composants.docx
2-Composants.docx
 
Fondamentaux des CMS
Fondamentaux des CMSFondamentaux des CMS
Fondamentaux des CMS
 
Cours BDD.pptx
Cours BDD.pptxCours BDD.pptx
Cours BDD.pptx
 
Design patterns french
Design patterns frenchDesign patterns french
Design patterns french
 
Créer et intégrer son thème PrestaShop
Créer et intégrer son thème PrestaShopCréer et intégrer son thème PrestaShop
Créer et intégrer son thème PrestaShop
 
Drupal 7 - Fondamentaux et ateliers
Drupal 7 - Fondamentaux et ateliersDrupal 7 - Fondamentaux et ateliers
Drupal 7 - Fondamentaux et ateliers
 
Framework Orienté objet
Framework Orienté objetFramework Orienté objet
Framework Orienté objet
 
srep_cours_06.pdf
srep_cours_06.pdfsrep_cours_06.pdf
srep_cours_06.pdf
 
Asp.net Présentation de L'application "Organizer"
Asp.net Présentation de L'application "Organizer"Asp.net Présentation de L'application "Organizer"
Asp.net Présentation de L'application "Organizer"
 

Dernier

Les débuts de la collection "Le livre de poche"
Les débuts de la collection "Le livre de poche"Les débuts de la collection "Le livre de poche"
Les débuts de la collection "Le livre de poche"ArchivesdeLyon
 
complement de agri cours irrigation.pptx
complement de agri cours irrigation.pptxcomplement de agri cours irrigation.pptx
complement de agri cours irrigation.pptxIbrahimBasallam
 
Texte avec différentes critiques positives, négatives ou mitigées
Texte avec différentes critiques positives, négatives ou mitigéesTexte avec différentes critiques positives, négatives ou mitigées
Texte avec différentes critiques positives, négatives ou mitigéesLeBaobabBleu1
 
GHASSOUB _Seance 4_ measurement and evaluation in education_-.pptx
GHASSOUB _Seance 4_ measurement and evaluation in education_-.pptxGHASSOUB _Seance 4_ measurement and evaluation in education_-.pptx
GHASSOUB _Seance 4_ measurement and evaluation in education_-.pptxAbderrahim GHASSOUB
 
Chapitre3-Classififcation des structures de chaussu00E9e.pptx
Chapitre3-Classififcation des structures de  chaussu00E9e.pptxChapitre3-Classififcation des structures de  chaussu00E9e.pptx
Chapitre3-Classififcation des structures de chaussu00E9e.pptxModesteTiemele
 
Fiche de vocabulaire pour faire une appréciation
Fiche de vocabulaire pour faire une appréciationFiche de vocabulaire pour faire une appréciation
Fiche de vocabulaire pour faire une appréciationLeBaobabBleu1
 
Nathanaëlle Herbelin.pptx Peintre française
Nathanaëlle Herbelin.pptx Peintre françaiseNathanaëlle Herbelin.pptx Peintre française
Nathanaëlle Herbelin.pptx Peintre françaiseTxaruka
 
GHASSOUB _Seance 3_ measurement and evaluation in education.pptx
GHASSOUB _Seance 3_ measurement and evaluation in education.pptxGHASSOUB _Seance 3_ measurement and evaluation in education.pptx
GHASSOUB _Seance 3_ measurement and evaluation in education.pptxAbderrahim GHASSOUB
 
Réunion des directeurs de Jonzac - 15 mai 2024
Réunion des directeurs de Jonzac - 15 mai 2024Réunion des directeurs de Jonzac - 15 mai 2024
Réunion des directeurs de Jonzac - 15 mai 2024IEN_Jonzac
 
Un petit coin etwinning- Au fil des cultures urbaines
Un petit coin  etwinning- Au fil des cultures urbainesUn petit coin  etwinning- Au fil des cultures urbaines
Un petit coin etwinning- Au fil des cultures urbainesSocratis Vasiopoulos
 
Àma Gloria.pptx Un film tourné au Cap Vert et en France
Àma Gloria.pptx   Un film tourné au Cap Vert et en FranceÀma Gloria.pptx   Un film tourné au Cap Vert et en France
Àma Gloria.pptx Un film tourné au Cap Vert et en FranceTxaruka
 
Saint Damien, missionnaire auprès des lépreux de Molokai, Hawaï.pptx
Saint Damien, missionnaire auprès des lépreux de Molokai, Hawaï.pptxSaint Damien, missionnaire auprès des lépreux de Molokai, Hawaï.pptx
Saint Damien, missionnaire auprès des lépreux de Molokai, Hawaï.pptxMartin M Flynn
 
CALENDRIER ET COMPTE RENDU REUNION DIRECTION
CALENDRIER ET COMPTE RENDU REUNION DIRECTIONCALENDRIER ET COMPTE RENDU REUNION DIRECTION
CALENDRIER ET COMPTE RENDU REUNION DIRECTIONfrizzole
 

Dernier (13)

Les débuts de la collection "Le livre de poche"
Les débuts de la collection "Le livre de poche"Les débuts de la collection "Le livre de poche"
Les débuts de la collection "Le livre de poche"
 
complement de agri cours irrigation.pptx
complement de agri cours irrigation.pptxcomplement de agri cours irrigation.pptx
complement de agri cours irrigation.pptx
 
Texte avec différentes critiques positives, négatives ou mitigées
Texte avec différentes critiques positives, négatives ou mitigéesTexte avec différentes critiques positives, négatives ou mitigées
Texte avec différentes critiques positives, négatives ou mitigées
 
GHASSOUB _Seance 4_ measurement and evaluation in education_-.pptx
GHASSOUB _Seance 4_ measurement and evaluation in education_-.pptxGHASSOUB _Seance 4_ measurement and evaluation in education_-.pptx
GHASSOUB _Seance 4_ measurement and evaluation in education_-.pptx
 
Chapitre3-Classififcation des structures de chaussu00E9e.pptx
Chapitre3-Classififcation des structures de  chaussu00E9e.pptxChapitre3-Classififcation des structures de  chaussu00E9e.pptx
Chapitre3-Classififcation des structures de chaussu00E9e.pptx
 
Fiche de vocabulaire pour faire une appréciation
Fiche de vocabulaire pour faire une appréciationFiche de vocabulaire pour faire une appréciation
Fiche de vocabulaire pour faire une appréciation
 
Nathanaëlle Herbelin.pptx Peintre française
Nathanaëlle Herbelin.pptx Peintre françaiseNathanaëlle Herbelin.pptx Peintre française
Nathanaëlle Herbelin.pptx Peintre française
 
GHASSOUB _Seance 3_ measurement and evaluation in education.pptx
GHASSOUB _Seance 3_ measurement and evaluation in education.pptxGHASSOUB _Seance 3_ measurement and evaluation in education.pptx
GHASSOUB _Seance 3_ measurement and evaluation in education.pptx
 
Réunion des directeurs de Jonzac - 15 mai 2024
Réunion des directeurs de Jonzac - 15 mai 2024Réunion des directeurs de Jonzac - 15 mai 2024
Réunion des directeurs de Jonzac - 15 mai 2024
 
Un petit coin etwinning- Au fil des cultures urbaines
Un petit coin  etwinning- Au fil des cultures urbainesUn petit coin  etwinning- Au fil des cultures urbaines
Un petit coin etwinning- Au fil des cultures urbaines
 
Àma Gloria.pptx Un film tourné au Cap Vert et en France
Àma Gloria.pptx   Un film tourné au Cap Vert et en FranceÀma Gloria.pptx   Un film tourné au Cap Vert et en France
Àma Gloria.pptx Un film tourné au Cap Vert et en France
 
Saint Damien, missionnaire auprès des lépreux de Molokai, Hawaï.pptx
Saint Damien, missionnaire auprès des lépreux de Molokai, Hawaï.pptxSaint Damien, missionnaire auprès des lépreux de Molokai, Hawaï.pptx
Saint Damien, missionnaire auprès des lépreux de Molokai, Hawaï.pptx
 
CALENDRIER ET COMPTE RENDU REUNION DIRECTION
CALENDRIER ET COMPTE RENDU REUNION DIRECTIONCALENDRIER ET COMPTE RENDU REUNION DIRECTION
CALENDRIER ET COMPTE RENDU REUNION DIRECTION
 

Patrons de conception

  • 1. patrons de conception « Design patterns » Maaroufi Mohamed Amine 2017-2018
  • 2. Plan Introduction Types de patrons Exemples d’un patron Avantages d'utiliser des patrons
  • 4. Qu'est ce qu'un patron de conception ?  L'utilisation actuelle vient des travaux de l'architecte Christopher Alexander  Alexander a étudié les manières d'améliorer le processus de conception de bâtiments et des zones urbaines  Chaque patron est une règle en 3 parties, qui exprime une relation entre un certain contexte, un problème et une solution.”  “ Chaque patron est une règle en 3 parties, qui exprime une relation entre un certain contexte, un problème et une solution.”  La définition habituelle d'un patron est : “Une solution à un problème dans un contexte.”
  • 5. Pourquoi utiliser les patrons ?  "Concevoir un logiciel orienté-objet est difficile, et concevoir un logiciel orienté-objet réutilisable est encore plus difficile." - Erich Gamma,  Les concepteurs expérimentés réutilise des solutions qui ont fonctionné dans le passé,  Les systèmes orientés-objet bien structurés suivent des patrons récurrents pour les classes et objets,  Les patrons qui ont fonctionné dans le passé permettent d'être plus productif. Les conceptions qui en résultent sont plus flexibles et réutilisables.
  • 7. Types de patrons logiciels Les chercheurs mentionnent 3 types de patron logiciels. 1. Patrons conceptuels Patrons dont la forme est décrite par les termes et concepts du domaine d'application 2. Patrons de conception Patrons dont la forme est décrite par les éléments de construction de conception logicielle (par exemple objets, classes, héritage et aggrégats) 3. Patrons de programmation Patron dont la forme est décrite par les éléments de construction du langage de programmation
  • 8. Classification du Gang of Four « GoF » pour les patrons de conception On distingue trois familles de patrons de conception selon leur utilisation : 1. Patrons de création Concernent le processus de la création d'objets Les patrons de création aident à créer des objets pour vous, au lieu d’avoir à instancier les objets directement. 2. Patrons de structure Concernent la composition de classes et d'objets Les patrons de structure aident à composer des groupes d’objets en des structures plus larges, telles que des interfaces utilisateur complexes. 3. Patrons de comportement Concernent l'interaction des classes et des objets Les patrons de comportement aident à définir la communication entre les objets du système et définir comment le flux est controlé.
  • 9. 1. Patrons de création  Fabrique Une méthode dans une classe dérivée créé les instances associées  Fabrique abstraite Fabrique pour construire des objets liés  Monteur Fabrique pour construire des objets complexes de manière incrémentale  Prototype Fabrique pour cloner de nouvelles instances d'un prototype  Singleton Fabrique pour n'avoir qu'une seule et unique instance
  • 10. 2. Patrons de structure  Adaptateur Un traducteur qui adapte une interface de serveur pour un client  Pont Découpler l'interface d'une classe et son implémentation  Objet composite Structure pour construire des aggrégats récursifs  Décorateur Etend un objet de manière transparente  Façade Façade simplifie l'interface pour un sous-système  Poids-mouche De nombreux objets partagés efficacement  Proxy Un objet est l'approximation d'un autre
  • 11. 3. Patrons de comportement  Chaine de responsabilité Requête déléguée au fournisseur de service responsable  Commande Requête comme objet de première classe  Interpréteur Interpréteur de langage pour une petite grammaire  Itérateur Eléments d'un agrégat sont atteints séquentiellement  Médiateur Médiateur coordonnes les interactions entre ses associés  Memento Une photo qui capture et restaure des états d'objets
  • 12. 3. Patrons de comportement  Observateur Les observateurs sont mis au courant des changements des observés  Etat Object dont le comportement dépend de son état  Stratégie Abstraction pour la sélection d'un parmi plusieurs algorithmes  Patron de méthode Algorithme avec des pas fournit par une classe dérivée  Visiteur Opérations appliquée aux éléments d'une structure d'objet hétérogène
  • 14. Exemple 1 Problématique L’interface propriétaire ne correspond pas à celle utilisée dans notre code, le système existant ne peut donc pas utiliser la classe propriétaire.
  • 15. Exemple 1 Solution : Créer un adaptateur
  • 16. Exemple 2 Problématique : Un serveur web gère des documents destinés aux clients. La classe abstraite Document a été définie pour cette gestion. Une première classe d’implantation de cette interface a été réalisée : DocumentHTML. Mais l’ajout de documents PDF a posé un problème (car plus complexes à construire et à gérer que html), Un composant de marché a été choisi et doit être intégré à l’application (classe ComposantPDF) mais son interface ne correspond pas à celle de Document.
  • 17. Exemple 2 Solution : Utiliser le pattern Adaptateur pour que le serveur Web puisse gérer des documents HTML et PDF. Spécifier l'implémentation de la nouvelle classe.
  • 19. Bénéfices des patrons de conception  Capturent l'expertise et la rendent accessible à des non-experts  Réduisent le temps de développement  Facilitent la communication entre les développeurs en fournissant un langage commun  Facilitent la réutilisation réussie de conceptions  Améliorent la documentation de conception  Améliorent la compréhensibilité des conceptions
  • 20. Références Design Patterns: Elements of Reusable Object-Oriented Software, Gamma, Helm, Johnson and Vlissides, Addison-Wesley, 1995 https://fr.wikibooks.org/wiki/Patrons_de_conception https://github.com/dieforfree/edsebooks/blob/master/ebooks/Desig n%20Patterns%2C%20Elements%20of%20Reusable%20Object- Oriented%20Software.pdf

Notes de l'éditeur

  1. Erich Gamma est un des quatre auteurs du livre Design Patterns
  2. Erich Gamma est un des quatre auteurs du livre Design Patterns
  3. Erich Gamma est un des quatre auteurs du livre Design Patterns
  4. Erich Gamma est un des quatre auteurs du livre Design Patterns
  5. Erich Gamma est un des quatre auteurs du livre Design Patterns
  6. Erich Gamma est un des quatre auteurs du livre Design Patterns
  7. Erich Gamma est un des quatre auteurs du livre Design Patterns
  8. Erich Gamma est un des quatre auteurs du livre Design Patterns
  9. Erich Gamma est un des quatre auteurs du livre Design Patterns
  10. Erich Gamma est un des quatre auteurs du livre Design Patterns