La présentation est en train de télécharger. S'il vous plaît, attendez

La présentation est en train de télécharger. S'il vous plaît, attendez

INSTITUT SUPERIEURE D’INFORMATIQUE Design Pattern 2009-2010 1.

Présentations similaires


Présentation au sujet: "INSTITUT SUPERIEURE D’INFORMATIQUE Design Pattern 2009-2010 1."— Transcription de la présentation:

1 INSTITUT SUPERIEURE D’INFORMATIQUE Design Pattern 2009-2010 1

2 o Conclusion o Les familles du Patrons de Conception o But o Définition o Introduction PLAN design 2

3 INTRODUCTION  Design Patterns (Les Patrons de Conception) sont les solutions,  Des façons éprouvées de modéliser des comportements ou des relations. design 3

4 Définition (1/2)  Peuvent être documentés de façon systématique,  Doivent être aussi génériques que possible,  Patron : Solution réutilisable à un problème général rencontré dans un contexte particulier: L’étude des patrons est une excellente façon d’apprendre de l’expérience des autres.  Contiennent des solutions éprouvés dans les contextes indiqués, design 4

5 Définition (2/2) Modèle de conception  Concept de génie logiciel destiné à résoudre les problèmes récurrents suivant le paradigme objet  Décrivent des solutions standard pour répondre à des problèmes d'architecture et de conception des logiciels, Décrivent des procédés de conception généraux. design Design Pattern  Une règle  Une méthode 5

6 BUT  Diminuer le temps nécessaire au développement d'un logiciel. Les patrons sont décrits sous une forme abstraite, sans s'attacher aux détails du problème à résoudre.  Faciliter la communication entre développeur.  Minimiser les interactions qu'il peut y avoir entre les différentes classes.  Augmenter la qualité du résultat. design 6

7 Formalisme  Description du problème à résoudre  Nom  Description de la solution : les éléments de la solutions, avec leurs relations. La solution est appelée patron de conception.  Conséquences : résultats issus de la solution. design 7

8 Exemple de Formalisme(Aéroport, dentiste…)  Problème à résoudre :  Nom :  Description de la solution : attente active ou passive, durée de l ’attente salle d ’attente on doit attendre toujours relaxante et pas confinée  Conséquences : design 8

9 GOF (Gang Of Four) Richard Helm Erich Gamma Ralph Johnson John Vlissides « Design Patterns: Elements of Reusable Object-Oriented Software » design 9

10 Les familles du patron de conception Motif de création Motif de structuration Motif de comportement design 10

11 Les motifs de création (1/2) : Abstraction du processus de création; Encapsulation de la logique de création; On ne sait pas à l'avance ce qui sera créée ou comment cela sera créé. design 11

12 Les motifs de création (2/2): Motif Abstract Factory; Motif Factory; Motif Singleton. Motif Builder; Motif Prototype; design 12

13 Motif Abstract Factory (1/3): Problème :Obtenir facilement un objet prêt à employer et correspond aux besoins ; Solution: Une classe ou une méthode qui encapsule la logique de création des objets en question; Construire des objets en utilisant des interfaces ou des classes abstraites pour masquer l'origine des objets. design 13

14 Motif Abstract Factory(2/3): L'utilisation de ce motif est pertinent lorsque :  Le système doit être indépendant de la création des objets qu'il utilise;  Le système doit être capable de créer des objets d'une même famille. design 14

15 Motif Abstract Factory(3/3): Méthode classiqueFabrique de création public interface Point { public int getX(); public int getY(); } public interface Line { public int getX1(); public int getY1(); public int getX2(); public int getY2(); } public class lpFactory { public Point getPoint( int x, int y ) { return new PointImpl( x, y ); } public Line getLine( int x1, int y1, int x2, int y2 ) { return new LineImpl( x1, y1, x2, y2 ); } } design 15

16 Motif factory(1/2): Créer un objet dont le type dépend du contexte ; Rendre l'instanciation d'objets plus flexible que l'utilisation de l'opérateur d'instanciation new; Attend les données pour déterminer le type de l'objet à instancier. design 16

17 Motif factory(2/2): design 17

18 Motif singleton(1/2): Contrôle le nombre d'instances d'une classe présent à un moment donné; Construit grâce à des méthodes de classes qui peuvent être accédées indépendamment de l'objet; peut être parfois perçu comme une fabrique particulière. design 18

19 Motif singleton(2/2): public lpFactory { /** Donnée de classe contenant l'instance courante */ private static lpFactory instance = new lpFactory(); /** Constructeur privé interdisant l'instanciation en dehors de cette classe */ private lpFactory () {} /** Singleton de la classe courante */ public static lpFactory getInstance() { return instance; }... } design 19

20 Motif builder(1/3): classe offrant des moyens de construction d'un objet ; on passe en paramètre un objet qui sait construire l'objet à partir d'une description; design 20

21 Motif builder(2/3): l'algorithme pour créer un objet doit être indépendant des parties qui le compose et de la façon de les assembler; le processus de construction permet différentes représentations de l'objet construit design 21

22 Motif builder(3/3): l'algorithme pour créer un objet doit être indépendant des parties qui le compose et de la façon de les assembler; le processus de construction permet différentes représentations de l'objet construit design 22

23 Motif prototype(1/2): Un système doit être indépendant de la façon dont ses produits sont créés, assemblés, représentés; Quand la classe n'est connue qu'à l'exécution; Pour éviter une hiérarchie de Factory parallèle à une hiérarchie de produits. design 23

24 Motif prototype(2/2): design 24

25 Structurel Pattern  Définition;  Objectifs. design 25

26 Principes (1/15)  Adapter ;  Bridge ;  Composite ;  Decorator ;  Facade ;  Flyweight ;  Proxy. design 26

27 Principes(2/15) Adapter(1/2)  Convertir une interface en une autre pour réutilisation;  Encapsuler un ensemble de fonctions sous la même implémentation. design 27

28 Principes(3/15) Adapter(2/2) design 28

29 Principes(4/15) Bridge(1/2)  On veut éviter un lien permanent entre l'abstraction et l'implantation;  Les modifications subies par l'implantation ou l'abstraction ne doivent pas avoir d'impacts sur le client. design 29

30 Principes(5/15) Bridge(2/2) design 30

31 Principes(6/15) Composite(1/2)  Représenter une hiérarchie d'objets;  Ignorer la différence entre un composant simple et un composant en contenant d'autres. design 31

32 Principes(7/15) Composite(2/2) design 32

33 Principes(8/15) Decorator(1/2)  Il faut ajouter des responsabilités dynamiquement et de manière transparente;  Il existe des responsabilités dont on peut se passer;  Des extensions sont indépendantes et qu'il serait impraticable d'implanter par sous- classage. design 33

34 Principes(9/15) Decorator(2/2) design 34

35 Principes(10/15) Facade  Fournir une interface simple à un système complexe;  Introduire une interface pour découpler les relations entre deux systèmes complexes;  Construire le système en couche. design 35

36 Principes(11/15) Facade design 36

37 Principes(12/15) Flyweight(1/2)  Beaucoup d'objets;  Coûts de sauvegarde sont élevés;  Nombreux d'objets peuvent être remplacés par quelques objets partagés ;  Application ne dépend pas de l'identité des objets. design 37

38 Principes(13/15) Flyweight(2/2) design 38

39 Principes(14/15) Proxy(1/2)  On utilise le Proxy lorsqu'on veut référencer un objet par un moyen plus complexe qu'un pointeur; design 39

40 Principes(15/15) Proxy(2/2) design 40

41 Exemple(1/2)  Site web de vente en ligne de véhicules;  On suppose que le serveur web de vente crée et gère des documents destinés aux clients;  On applique le patron Adapter à un composant de document PDF. design 41

42 Exemple(2/2) design 42

43 Pattern de comportement 5  Comportement Interpretor, Template method, Chain of responsability,Command, Iterator, Mediator, Memento, Observator,State, Strategy, Visitor, Mode de communication entre les objets design

44 5 Formes de comportement pour décrire :  des algorithmes,  des comportements entre objets,  des formes de communication entre objet. Pattern de comportement(1) design

45 5 Pattern de comportement(2)  pour implanter une partie invariante d'un algorithme.  pour partager des comportements communs d'une hiérarchie de classes.  pour contrôler des extensions de sous-classe. Template Method: design

46 5 Template Method(exemple): Pattern de comportement(3) L’algorithme en France L’algorithme en Lexemburg La méthode calculetva est une méthode abstraite de classe commande design

47 5 Template method(exemple): Pattern de comportement(4) design

48 5 Template method(structure): Pattern de comportement(5) design

49 5 Template method(exemple): Pattern de comportement(6) Exemple en java design

50 5 Template method(exemple): Pattern de comportement(7) Exemple en java design

51 5 Strategy: Pattern de comportement(8)  de nombreuses classes associées ne diffèrent que par leur comportement. Stratégie offre un moyen de configurer une classe avec un comportement parmi plusieurs.  on a besoin de plusieurs variantes d'algorithme.  un algorithme utilise des données que les clients ne doivent pas connaitre. design

52 5 Strategy Pattern de comportement(9) Exemple design

53 5 Strategy Pattern de comportement(10) Diagramme de classe qui montre la structure générique de pattern strategy: design

54 5 Stat Pattern de comportement(11) Permet a un objet de modifier son comportement, quand son état interne change. Tout se passera comme si l’objet changeait de classe design

55 5 Stat(exemple) Pattern de comportement(13) design

56 5 Iterator Pattern de comportement(14)  Solution : Utiliser un objet qui dispose de la connaissance nécessaire à la navigation dans la collection avec une interface unique.  Problématique : Parcourir des collections d'objets diverses, éventuellement de différentes façons, sans risque pour le contenu. design

57 5 Iterator Pattern de comportement(15) design

58 5 Chain of responsibility Pattern de comportement(16)  plus d'un objet peut traiter une requête, et il n'est pas connu a priori  l'ensemble des objets pouvant traiter une requête est construit dynamiquement design

59 5 Memento Pattern de comportement(17) Pour l'implémentation  de points de contrôles  de mécanismes de réversion Permettre à l'utilisateur  de revenir en arrière que des opérations tentatives  pour se reconstituer après des erreurs. design

60 5 Memento(structure) Pattern de comportement(18) design

61 5 Command Pattern de comportement(19)  spécifier, stocker et exécuter des actions à des moments différents.  on veut pouvoir "défaire". Les commandes exécutées peuvent être stockées ainsi que les états des objets affectés...  on veut implanter des transactions ; actions de "hautniveau". design

62 5 Autre Pattern IoC(Inversion of Contrôle) MVC Dependency injection design

63 Reference 7 http://www.phppatterns.com/ Wikipedia www.books.google.com Codes_source.com ….. design

64 Ouvrages sur les design Pattern 7 design

65 Avantages : Un vocabulaire commun; Capitalisation de l ’expérience; Un niveau d ’abstraction plus élevé qui permet d ’élaborer des constructions logicielles de meilleure qualité; Réduire la complexité; Guide/catalogue de solutionsQuand la classe n'est connue qu'à l'exécution; Pour éviter une hiérarchie de Factory parallèle à une hiérarchie de produits. design 65

66 Inconvénients: Effort de synthèse ; reconnaître, abstraire… Apprentissage, expérience Les patterns « se dissolvent » en étant utilisés Nombreux… -lesquels sont identiques ? -De niveaux différents … des patterns s ’appuient sur d ’autres… design 66

67 CONCLUSION Les design pattern représentent une excellente garantie pour un produit de qualité, un code réutilisable et à maintenance simplifiée. design 67

68 Références http://www.phppatterns.com/ Wikipedia www.books.google.com Codes_source.com Design Pattern ….. design 68

69 design 69


Télécharger ppt "INSTITUT SUPERIEURE D’INFORMATIQUE Design Pattern 2009-2010 1."

Présentations similaires


Annonces Google