Télécharger la présentation
La présentation est en train de télécharger. S'il vous plaît, attendez
Publié parMadeleine Leclerc Modifié depuis plus de 9 années
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
Présentations similaires
© 2024 SlidePlayer.fr Inc.
All rights reserved.