Ce diaporama a bien été signalé.
Nous utilisons votre profil LinkedIn et vos données d’activité pour vous proposer des publicités personnalisées et pertinentes. Vous pouvez changer vos préférences de publicités à tout moment.

Design patterns - Exemples en Java

2 690 vues

Publié le

Quelques exemples d'application des patrons de conception (Design Patterns) en Java.

Publié dans : Logiciels
  • Get the best essay, research papers or dissertations. from ⇒ www.HelpWriting.net ⇐ A team of professional authors with huge experience will give u a result that will overcome your expectations.
       Répondre 
    Voulez-vous vraiment ?  Oui  Non
    Votre message apparaîtra ici
  • There are over 16,000 woodworking plans that comes with step-by-step instructions and detailed photos, Click here to take a look 》》》 https://url.cn/ktFCrsHZ
       Répondre 
    Voulez-vous vraiment ?  Oui  Non
    Votre message apparaîtra ici
  • DOWNLOAD THE BOOK INTO AVAILABLE FORMAT (New Update) ......................................................................................................................... ......................................................................................................................... Download Full PDF EBOOK here { https://urlzs.com/UABbn } ......................................................................................................................... Download Full EPUB Ebook here { https://urlzs.com/UABbn } ......................................................................................................................... Download Full doc Ebook here { https://urlzs.com/UABbn } ......................................................................................................................... Download PDF EBOOK here { https://urlzs.com/UABbn } ......................................................................................................................... Download EPUB Ebook here { https://urlzs.com/UABbn } ......................................................................................................................... Download doc Ebook here { https://urlzs.com/UABbn } ......................................................................................................................... ......................................................................................................................... ................................................................................................................................... eBook is an electronic version of a traditional print book THE can be read by using a personal computer or by using an eBook reader. (An eBook reader can be a software application for use on a computer such as Microsoft's free Reader application, or a book-sized computer THE is used solely as a reading device such as Nuvomedia's Rocket eBook.) Users can purchase an eBook on diskette or CD, but the most popular method of getting an eBook is to purchase a downloadable file of the eBook (or other reading material) from a Web site (such as Barnes and Noble) to be read from the user's computer or reading device. Generally, an eBook can be downloaded in five minutes or less ......................................................................................................................... .............. Browse by Genre Available eBOOK .............................................................................................................................. Art, Biography, Business, Chick Lit, Children's, Christian, Classics, Comics, Contemporary, CookBOOK, Manga, Memoir, Music, Mystery, Non Fiction, Paranormal, Philosophy, Poetry, Psychology, Religion, Romance, Science, Science Fiction, Self Help, Suspense, Spirituality, Sports, Thriller, Travel, Young Adult, Crime, EBOOK, Fantasy, Fiction, Graphic Novels, Historical Fiction, History, Horror, Humor And Comedy, ......................................................................................................................... ......................................................................................................................... .....BEST SELLER FOR EBOOK RECOMMEND............................................................. ......................................................................................................................... Blowout: Corrupted Democracy, Rogue State Russia, and the Richest, Most Destructive Industry on Earth,-- The Ride of a Lifetime: Lessons Learned from 15 Years as CEO of the Walt Disney Company,-- Call Sign Chaos: Learning to Lead,-- StrengthsFinder 2.0,-- Stillness Is the Key,-- She Said: Breaking the Sexual Harassment Story THE Helped Ignite a Movement,-- Atomic Habits: An Easy & Proven Way to Build Good Habits & Break Bad Ones,-- Everything Is Figureoutable,-- What It Takes: Lessons in the Pursuit of Excellence,-- Rich Dad Poor Dad: What the Rich Teach Their Kids About Money THE the Poor and Middle Class Do Not!,-- The Total Money Makeover: Classic Edition: A Proven Plan for Financial Fitness,-- Shut Up and Listen!: Hard Business Truths THE Will Help You Succeed, ......................................................................................................................... .........................................................................................................................
       Répondre 
    Voulez-vous vraiment ?  Oui  Non
    Votre message apparaîtra ici
  • DOWNLOAD THIS BOOKS INTO AVAILABLE FORMAT (2019 Update) ......................................................................................................................... ......................................................................................................................... Download Full PDF EBOOK here { https://soo.gd/irt2 } ......................................................................................................................... Download Full EPUB Ebook here { https://soo.gd/irt2 } ......................................................................................................................... Download Full doc Ebook here { https://soo.gd/irt2 } ......................................................................................................................... Download PDF EBOOK here { https://soo.gd/irt2 } ......................................................................................................................... Download EPUB Ebook here { https://soo.gd/irt2 } ......................................................................................................................... Download doc Ebook here { https://soo.gd/irt2 } ......................................................................................................................... ......................................................................................................................... ................................................................................................................................... eBook is an electronic version of a traditional print book THIS can be read by using a personal computer or by using an eBook reader. (An eBook reader can be a software application for use on a computer such as Microsoft's free Reader application, or a book-sized computer THIS is used solely as a reading device such as Nuvomedia's Rocket eBook.) Users can purchase an eBook on diskette or CD, but the most popular method of getting an eBook is to purchase a downloadable file of the eBook (or other reading material) from a Web site (such as Barnes and Noble) to be read from the user's computer or reading device. Generally, an eBook can be downloaded in five minutes or less ......................................................................................................................... .............. Browse by Genre Available eBooks .............................................................................................................................. Art, Biography, Business, Chick Lit, Children's, Christian, Classics, Comics, Contemporary, Cookbooks, Manga, Memoir, Music, Mystery, Non Fiction, Paranormal, Philosophy, Poetry, Psychology, Religion, Romance, Science, Science Fiction, Self Help, Suspense, Spirituality, Sports, Thriller, Travel, Young Adult, Crime, Ebooks, Fantasy, Fiction, Graphic Novels, Historical Fiction, History, Horror, Humor And Comedy, ......................................................................................................................... ......................................................................................................................... .....BEST SELLER FOR EBOOK RECOMMEND............................................................. ......................................................................................................................... Blowout: Corrupted Democracy, Rogue State Russia, and the Richest, Most Destructive Industry on Earth,-- The Ride of a Lifetime: Lessons Learned from 15 Years as CEO of the Walt Disney Company,-- Call Sign Chaos: Learning to Lead,-- StrengthsFinder 2.0,-- Stillness Is the Key,-- She Said: Breaking the Sexual Harassment Story THIS Helped Ignite a Movement,-- Atomic Habits: An Easy & Proven Way to Build Good Habits & Break Bad Ones,-- Everything Is Figureoutable,-- What It Takes: Lessons in the Pursuit of Excellence,-- Rich Dad Poor Dad: What the Rich Teach Their Kids About Money THIS the Poor and Middle Class Do Not!,-- The Total Money Makeover: Classic Edition: A Proven Plan for Financial Fitness,-- Shut Up and Listen!: Hard Business Truths THIS Will Help You Succeed, ......................................................................................................................... .........................................................................................................................
       Répondre 
    Voulez-vous vraiment ?  Oui  Non
    Votre message apparaîtra ici
  • je vous remercie
       Répondre 
    Voulez-vous vraiment ?  Oui  Non
    Votre message apparaîtra ici
  • Soyez le premier à aimer ceci

Design patterns - Exemples en Java

  1. 1. OUSSAMA BEN KHIROUN 1 PATRONS DE CONCEPTION (DESIGN PATTERNS) Exemples en Java
  2. 2. INTRODUCTION Un patron de conception est un arrangement caractéristique de modules, reconnu comme bonne pratique en réponse à un problème de conception d'un logiciel. Il décrit une solution standard, utilisable dans la conception de différents logiciels. [Wikipedia] « Chaque patron décrit un problème qui se manifeste constamment dans notre environnement, et donc décrit le cœur de la solution à ce problème, d’une façon telle que l’on puisse réutiliser cette solution des millions de fois, sans jamais le faire deux fois de la même manière » [Christopher Alexander, 1977] 2
  3. 3. HISTORIQUE (1/2) 3 À l’origine des travaux de l'architecte Christopher Alexander Intitulé : « A Pattern Language » Année : les années 70
  4. 4. HISTORIQUE (2/2) Formalisés dans le livre du « Gang of Four » GoF (Erich Gamma, Richard Helm, Ralph Johnson et John Vlissides) Intitulé : « Design Patterns – Elements of Reusable Object-Oriented Software » Année : 1995 Décrit 23 patrons (« patrons GoF ») 4
  5. 5. MOTIVATION & OBJECTIFS  Modularité – Facilité de gestion (programmation objet)  Cohésion • Degré avec lequel les tâches réalisées par un seul module sont fonctionnellement reliées • Une forte cohésion est une bonne qualité  Couplage • Degré d’interaction entre les modules dans le système • Un couplage « lâche » est une bonne qualité  Réutilisabilité – Bibliothèques, frameworks 5
  6. 6. CATÉGORIES DE DESIGN PATTERNS • comment faire l'instanciation et la configuration des classes et des objets Modèle de Création (Creational) • comment organiser les classes d'un programme dans une structure plus large (séparant l'interface de l'implémentation) Modèle de Structure (Structural) • comment organiser les objets pour que ceux-ci collaborent (distribution des responsabilités) Modèle de Comportement (Behavioral) 6
  7. 7. ANTI PATTERNS (À NE PAS FAIRE)  Ancre de bateau : un composant inutilisé mais qui est gardé dans le logiciel pour des raisons politiques, en pensant que ce code servira plus tard.  Attente active, Inter-blocages et famine  Erreur de copier/coller : La duplication de code sans vérification entraîne des incohérences. La meilleure solution étant encore de factoriser les parties communes au lieu de les dupliquer.  Réinventer la roue : il est souvent recommandé d’opter pour la réutilisation  Programmation spaghetti : Ceci fait référence à l'image d'un plat de spaghetti, dans lequel il serait impossible de modifier une petite partie du logiciel sans altérer le fonctionnement de tous les autres composants.  Architecture As Requirements : consistant à spécifier une architecture par simple préférence ou parce qu'elle est nouvelle, alors qu'il n'y en a pas besoin et que le client n'en a pas exprimé le désir.  Architecture By Implication : consistant à ne pas documenter l'architecture utilisée par un projet et à ne pas la spécifier. 7
  8. 8. 8
  9. 9. CATÉGORIE DE MODÈLES DE CRÉATION Ces modèles sont très courants pour déléguer à d'autres classes la construction des objets. 9 FactorySingleton Prototype Abstract Factory Builder
  10. 10. SINGLETON (1/2)  Un singleton sert à contrôler le nombre d'instances d'une classe présent à un moment donné. C'est souvent très pratique pour les classes sans état et effectuant toujours les mêmes traitements.  Exemple : classe de connexion à une Base de Données  Il est utilisé lorsque l'on a besoin d'exactement de un objet (ou N ) pour coordonner des opérations dans un système. 10 CREATION Question : Comment faire en Java pour empêcher l’instanciation de plus d'un objet d'une classe donnée ?
  11. 11. SINGLETON (2/2) 11 CREATION OU
  12. 12. FACTORY (OU FABRIQUE ) (1/3)  Sert à instancier facilement des objets appartenant à des classes dérivés d'une même super classe ou implémentant des interfaces communs.  Dans ce type de patron on trouve : le client, la ou les fabriques et la ou les produits 12 CREATION Question : Comment faire en Java pour faciliter à un client l'instanciation d'objets filles d'une même classe mère ou implémentant une même interface ?
  13. 13. FACTORY (OU FABRIQUE ) : EXEMPLE (2/3) 13 CREATION
  14. 14. FACTORY (3/3) 14 CREATION
  15. 15. BUILDER (OU MONTEUR ) (1/2)  C'est une classe offrant des méthodes facilitant la création d'un objet composé d'un ensemble d'objets sources.  Exemple : pour construire un dessin il faut ajouter des points, des lignes, des cercles  Il ne doit pas être confondu avec la Fabrique. 15 CREATION
  16. 16. BUILDER (OU MONTEUR ) (2/2) 16 CREATION
  17. 17. CATÉGORIE DE MODÈLES DE STRUCTURE Ces modèles tentent de composer des classes pour bâtir de nouvelles structures. 17 Adapter FacadeComposite Bridge FlyweightDecoratorProxy
  18. 18. COMPOSITE 18 STRUCTURE OBJECTIFS :  Organiser les objets en structure arborescente afin de représenter une hiérarchie.  Permettre à la partie cliente de manipuler un objet unique et un objet composé de la même manière. RESPONSABILITES : •Composant : définit l'interface d'un objet pouvant être un composant d'un autre objet de l'arborescence. •Element : implémente un objet de l'arborescence n'ayant pas d'objet le composant. •Composite : implémente un objet de l'arborescence ayant un ou des objets le composant. •La partie client manipule les objets par l'interface Composant. Exemple : Modélisation tâche élémentaire et tâche complexe
  19. 19. FACADE (1/2) OBJECTIFS :  Fournir une interface unique en remplacement d'un ensemble d'interfaces d'un sous-système.  Définir une interface de haut niveau pour rendre le sous-système plus simple d'utilisation. 19 STRUCTURE
  20. 20. FACADE (2/2) : EXEMPLE 20 STRUCTURE "Facade" Présente certaines fonctionnalités. Dans ce cas, ne présente que la méthode "operation2()" de "ClasseA" et la méthode "operation41()" utilisant "operation4()" de "ClasseB" et "operation1()" de "ClasseA".
  21. 21. CATÉGORIE DE MODÈLES DE COMPORTEMENT Ces modèles tentent de répartir les responsabilités entre chaque classe. 21 Template Iterator Command Mediator Memento InterpreterChain of Responsibility ObserverStateStrategy Visitor
  22. 22. TEMPLATE (1/2) OBJECTIFS : Définir le squelette d'un algorithme en déléguant certaines étapes à des sous-classes. RESPONSABILITES : • AbstractClasse : définit des méthodes abstraites primitives. La classe implémente le squelette d'un algorithme qui appelle les méthodes primitives. • ConcreteClasse : est une sous-classe concrète de AbstractClasse. Elle implémente les méthodes utilisées par l'algorithme de la méthode operationTemplate() de AbstractClasse. • La partie cliente appelle la méthode de AbstractClasse qui définit l'algorithme. 22 COMPORTEMENT
  23. 23. TEMPLATE (2/2) : EXEMPLE 23 COMPORTEMENT
  24. 24. ITERATOR Voir utilisation des itérateurs en Java :  Classe « Iterator », Interface « Iterable » 24 COMPORTEMENT
  25. 25. RÉFÉRENCES [1] Régis POUILLER, « Design Patterns du Gang of Four appliqués à Java ». Developpez.com : http://rpouiller.developpez.com/tutoriel/java/design- patterns-gang-of-four/ [2] Mark Grand, « Patterns in Java: A Catalog of Reusable Design Patterns Illustrated with UML », volume 1. Wiley, 2 édition, 2002. 25

×