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

Slides:



Advertisements
Présentations similaires
Module 5 : Implémentation de l'impression
Advertisements

Le struts validator – framework de validation
Introduction au patrons de conception « Design patterns »
UML - Présentation.
(Classes prédéfinies – API Java)
Design Pattern MVC En PHP5.
INTRODUCTION.
Leçon 3 : Héritage IUP 2 Génie Informatique
Introduction à la POO: Les classes vs les objets
بسم الله الرحمن الرحيم. Institut Supérieure des Etudes Technologiques de Kébili.
Page de garde Introduction aux Design Patterns ISIA, Mars 2003
Etude des Technologies du Web services
Programmation orientée objet
XML-Family Web Services Description Language W.S.D.L.
Principes de la technologie orientée objets
JAVASERVER FACES Un framework Java pour le développement Web.
Sommaire Objectif de Peakup Principes de fonctionnement
Chaque use-case génère un ou des scénarios, traduits par des diagrammes objets, qui permettent d’introduire et/ou de compléter les diagrammes des catégories.
Révision Les principes SOLID.
IFT1025, Programmation 2 Jian-Yun Nie
Introduction au paradigme objet Concepts importants surcharge (overload) redéfinition (override) Définition d’une classe Définition des attributs.
.Net Remoting.
Structures de données IFT-10541
Behavioral Design Patterns The Observer Pattern Roberto Demontis Sylvain Giroux.
Introduction au paradigme orienté-objet (suite)
Un patron de conception
Design Patterns Factory Method – Pattern de construction [DANT] Génie Logiciel 1.
Architecture dun site de vente au détail1 Modèle d'un site simple de vente Lexemple du livre Ruby on Rails Partie II Java Adventure Builder Demo Réalisé.
© Petko ValtchevUniversité de Montréal Janvier IFT 2251 Génie Logiciel Notions de Base Hiver 2002 Petko Valtchev.
COURS DE PROGRAMMATION ORIENTEE OBJET :
Leçon 1 : notion dobjet IUP Génie Informatique Besançon Méthode et Outils pour la Programmation Françoise Greffier Université de Franche-Comté.
Portée, arrimages et intervenants Évolution des méthodes
Sensibilisation a la modelisation
Patrons de conceptions de créations
1. Représentation des informations
INTRODUCTION.
Factory Design Patterns. Contents Factory patterns: principesFactory patterns: principes The Factory Method patternThe Factory Method pattern The Abstract.
Supports de formation au SQ Unifié
Designs Patterns comment rendre son code faiblement couplé, et maintenable...
Design Pattern Hichame ELKHALFI.
Créer des packages.
Le contenu est basé aux transparents du 7 ème édition de «Software Engineering» de Ian Sommerville«Software Engineering» de Ian Sommerville B.Shishedjiev.
1 Registration Physique Séminaire du Master Davide Bazzi Université de Fribourg
Introduction au Génie Logiciel
Tutorat en bio-informatique
5ième Classe (Mercredi, 19 octobre) Prog CSI2572.
PHP objet Jérôme CUTRONA 10:13:27 Programmation Web
Initiation à la conception des systèmes d'informations
Iterator Design Pattern Alessandro Soro Sylvain Giroux.
La programmation par objets Principes et concepts Etude de Smalltalk.
Notifications et Communication réseau D. BELLEBIA – 18/12/2007NSY208 CNAM.
Chapitre VII Techniques plus avancées à travers le concept de classe.
Hiver 2004SEG2501 Chapître 41 Chapître 4 SDL – structure d’un système et son comportement.
Chapitre 2 Rappels objet et Présentation des diagrammes UML
Chapitre 2 Rappels objet et Présentation des diagrammes UML
Factory Design Patterns Raffaella Sanna Sylvain Giroux.
Introduction à la Programmation Orientée Objet
Diagramme de Composants
INTRODUCTION AUX BASES DE DONNEES
BlueJ_VII 1 Java, les objets : tout de suite ! Conception de classes (1) Notes de cours associées au chapitre 7 tutorial BlueJ
Template Method Design Pattern. But Définir le squelette d’un algorithme tout en déléguant certaines étapes aux sous-classes. Les sous-classes peuvent.
PRÉSENTATION AGL LES TESTS LOGICIELS LES TEST LOGICIELS 1 Mickael BETTINELLI Brandon OZIOL Gaétan PHILIPPE Simon LUAIRE.
Parquet Geoffrey 3 ARIL EXIA.CESI ARRAS. Présentation du MLD Présentation de la persistance Présentation récapitulatif du projet JSP/SERVLET MVC Cycle.
UML : méthode Processus. Introduction(1) ● Cycles ● Spécification par cas d'utilisation ● Identifier les besoins ● Analyse par cas d'utilisation ● Affiner.
Introduction à l'orienté objet. Définition Le terme orienté objet siginifie que l'on organise le logiciel comme une collection d'objets organisée en graphe.
Révision Les principes SOLID. Question  Qu’est-ce que le S de Solid?
Transcription de la présentation:

INSTITUT SUPERIEURE D’INFORMATIQUE Design Pattern

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Motif factory(2/2): design 17

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

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

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

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

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

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

Motif prototype(2/2): design 24

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

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

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

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

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

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

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

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

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

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

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

Principes(11/15) Facade design 36

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

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

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

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

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

Exemple(2/2) design 42

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

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

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

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

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

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

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

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

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

5 Strategy Pattern de comportement(9) Exemple design

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

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

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

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

5 Iterator Pattern de comportement(15) design

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

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

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

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

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

Reference 7 Wikipedia Codes_source.com ….. design

Ouvrages sur les design Pattern 7 design

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

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

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

Références Wikipedia Codes_source.com Design Pattern ….. design 68

design 69