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

Diagramme de classe
Diagramme de classeDiagramme de classe
Diagramme de classe
Ilhem Daoudi
 
Modélisation uml avec le diagramme de classe
Modélisation uml avec le diagramme de classeModélisation uml avec le diagramme de classe
Modélisation uml avec le diagramme de classe
amat samiâ boualil
 

Tendances (20)

diagramme de séquence UML
diagramme de séquence UMLdiagramme de séquence UML
diagramme de séquence UML
 
Appalications JEE avec Servlet/JSP
Appalications JEE avec Servlet/JSPAppalications JEE avec Servlet/JSP
Appalications JEE avec Servlet/JSP
 
Cours design pattern m youssfi partie 1 introduction et pattern strategy
Cours design pattern m youssfi partie 1 introduction et pattern strategyCours design pattern m youssfi partie 1 introduction et pattern strategy
Cours design pattern m youssfi partie 1 introduction et pattern strategy
 
softCours design pattern m youssfi partie 9 creation des objets abstract fact...
softCours design pattern m youssfi partie 9 creation des objets abstract fact...softCours design pattern m youssfi partie 9 creation des objets abstract fact...
softCours design pattern m youssfi partie 9 creation des objets abstract fact...
 
Architecture réparties et les services web
Architecture réparties et les services webArchitecture réparties et les services web
Architecture réparties et les services web
 
Diagramme de classe
Diagramme de classeDiagramme de classe
Diagramme de classe
 
Cours design pattern m youssfi partie 2 observer
Cours design pattern m youssfi partie 2 observerCours design pattern m youssfi partie 2 observer
Cours design pattern m youssfi partie 2 observer
 
diagramme des cas d'utilisation
diagramme des cas d'utilisationdiagramme des cas d'utilisation
diagramme des cas d'utilisation
 
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
 
Chapitre 5 classes abstraites et interfaces
Chapitre 5  classes abstraites et interfacesChapitre 5  classes abstraites et interfaces
Chapitre 5 classes abstraites et interfaces
 
UML Diagrammes Statiques
UML Diagrammes StatiquesUML Diagrammes Statiques
UML Diagrammes Statiques
 
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
 
Support de cours Spring M.youssfi
Support de cours Spring  M.youssfiSupport de cours Spring  M.youssfi
Support de cours Spring M.youssfi
 
Architectures n-tiers
Architectures n-tiersArchitectures n-tiers
Architectures n-tiers
 
2 TUP
2 TUP2 TUP
2 TUP
 
Ecole ESMA : Projet Fin de semestre - Application de gestion d'une école
Ecole ESMA : Projet Fin de semestre - Application de gestion d'une école Ecole ESMA : Projet Fin de semestre - Application de gestion d'une école
Ecole ESMA : Projet Fin de semestre - Application de gestion d'une école
 
Manuel des TP : Atelier Web 2
Manuel des TP : Atelier Web 2Manuel des TP : Atelier Web 2
Manuel des TP : Atelier Web 2
 
Chp2 - Vers les Architectures Orientées Services
Chp2 - Vers les Architectures Orientées ServicesChp2 - Vers les Architectures Orientées Services
Chp2 - Vers les Architectures Orientées Services
 
Modélisation uml avec le diagramme de classe
Modélisation uml avec le diagramme de classeModélisation uml avec le diagramme de classe
Modélisation uml avec le diagramme de classe
 
Modele mvc
Modele mvcModele mvc
Modele mvc
 

Similaire à Patrons de conception

Design patterns gof fr
Design patterns gof frDesign patterns gof fr
Design patterns gof fr
It Academy
 
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
arapilatico
 

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

Copie de Engineering Software Marketing Plan by Slidesgo.pptx.pptx
Copie de Engineering Software Marketing Plan by Slidesgo.pptx.pptxCopie de Engineering Software Marketing Plan by Slidesgo.pptx.pptx
Copie de Engineering Software Marketing Plan by Slidesgo.pptx.pptx
ikospam0
 
Bilan énergétique des chambres froides.pdf
Bilan énergétique des chambres froides.pdfBilan énergétique des chambres froides.pdf
Bilan énergétique des chambres froides.pdf
AmgdoulHatim
 

Dernier (20)

Formation qhse - GIASE saqit_105135.pptx
Formation qhse - GIASE saqit_105135.pptxFormation qhse - GIASE saqit_105135.pptx
Formation qhse - GIASE saqit_105135.pptx
 
Apolonia, Apolonia.pptx Film documentaire
Apolonia, Apolonia.pptx         Film documentaireApolonia, Apolonia.pptx         Film documentaire
Apolonia, Apolonia.pptx Film documentaire
 
Formation échiquéenne jwhyCHESS, parallèle avec la planification de projet
Formation échiquéenne jwhyCHESS, parallèle avec la planification de projetFormation échiquéenne jwhyCHESS, parallèle avec la planification de projet
Formation échiquéenne jwhyCHESS, parallèle avec la planification de projet
 
Télécommunication et transport .pdfcours
Télécommunication et transport .pdfcoursTélécommunication et transport .pdfcours
Télécommunication et transport .pdfcours
 
Echos libraries Burkina Faso newsletter 2024
Echos libraries Burkina Faso newsletter 2024Echos libraries Burkina Faso newsletter 2024
Echos libraries Burkina Faso newsletter 2024
 
L application de la physique classique dans le golf.pptx
L application de la physique classique dans le golf.pptxL application de la physique classique dans le golf.pptx
L application de la physique classique dans le golf.pptx
 
GIÁO ÁN DẠY THÊM (KẾ HOẠCH BÀI DẠY BUỔI 2) - TIẾNG ANH 6, 7 GLOBAL SUCCESS (2...
GIÁO ÁN DẠY THÊM (KẾ HOẠCH BÀI DẠY BUỔI 2) - TIẾNG ANH 6, 7 GLOBAL SUCCESS (2...GIÁO ÁN DẠY THÊM (KẾ HOẠCH BÀI DẠY BUỔI 2) - TIẾNG ANH 6, 7 GLOBAL SUCCESS (2...
GIÁO ÁN DẠY THÊM (KẾ HOẠCH BÀI DẠY BUỔI 2) - TIẾNG ANH 6, 7 GLOBAL SUCCESS (2...
 
Neuvaine de la Pentecôte avec des textes de saint Jean Eudes
Neuvaine de la Pentecôte avec des textes de saint Jean EudesNeuvaine de la Pentecôte avec des textes de saint Jean Eudes
Neuvaine de la Pentecôte avec des textes de saint Jean Eudes
 
Cours Généralités sur les systèmes informatiques
Cours Généralités sur les systèmes informatiquesCours Généralités sur les systèmes informatiques
Cours Généralités sur les systèmes informatiques
 
La mondialisation avantages et inconvénients
La mondialisation avantages et inconvénientsLa mondialisation avantages et inconvénients
La mondialisation avantages et inconvénients
 
Les roches magmatique géodynamique interne.pptx
Les roches magmatique géodynamique interne.pptxLes roches magmatique géodynamique interne.pptx
Les roches magmatique géodynamique interne.pptx
 
Copie de Engineering Software Marketing Plan by Slidesgo.pptx.pptx
Copie de Engineering Software Marketing Plan by Slidesgo.pptx.pptxCopie de Engineering Software Marketing Plan by Slidesgo.pptx.pptx
Copie de Engineering Software Marketing Plan by Slidesgo.pptx.pptx
 
les_infections_a_streptocoques.pptkioljhk
les_infections_a_streptocoques.pptkioljhkles_infections_a_streptocoques.pptkioljhk
les_infections_a_streptocoques.pptkioljhk
 
658708519-Power-Point-Management-Interculturel.pdf
658708519-Power-Point-Management-Interculturel.pdf658708519-Power-Point-Management-Interculturel.pdf
658708519-Power-Point-Management-Interculturel.pdf
 
CompLit - Journal of European Literature, Arts and Society - n. 7 - Table of ...
CompLit - Journal of European Literature, Arts and Society - n. 7 - Table of ...CompLit - Journal of European Literature, Arts and Society - n. 7 - Table of ...
CompLit - Journal of European Literature, Arts and Society - n. 7 - Table of ...
 
RAPPORT DE STAGE D'INTERIM DE ATTIJARIWAFA BANK
RAPPORT DE STAGE D'INTERIM DE ATTIJARIWAFA BANKRAPPORT DE STAGE D'INTERIM DE ATTIJARIWAFA BANK
RAPPORT DE STAGE D'INTERIM DE ATTIJARIWAFA BANK
 
Bilan énergétique des chambres froides.pdf
Bilan énergétique des chambres froides.pdfBilan énergétique des chambres froides.pdf
Bilan énergétique des chambres froides.pdf
 
L'expression du but : fiche et exercices niveau C1 FLE
L'expression du but : fiche et exercices  niveau C1 FLEL'expression du but : fiche et exercices  niveau C1 FLE
L'expression du but : fiche et exercices niveau C1 FLE
 
Intégration des TICE dans l'enseignement de la Physique-Chimie.pptx
Intégration des TICE dans l'enseignement de la Physique-Chimie.pptxIntégration des TICE dans l'enseignement de la Physique-Chimie.pptx
Intégration des TICE dans l'enseignement de la Physique-Chimie.pptx
 
STRATEGIE_D’APPRENTISSAGE flee_DU_FLE.pdf
STRATEGIE_D’APPRENTISSAGE flee_DU_FLE.pdfSTRATEGIE_D’APPRENTISSAGE flee_DU_FLE.pdf
STRATEGIE_D’APPRENTISSAGE flee_DU_FLE.pdf
 

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