Page de garde Introduction aux Design Patterns ISIA, Mars 2003

Slides:



Advertisements
Présentations similaires
Réalisation d’un Framework pour la création de jeux d'arcades
Advertisements

Etude de Cas Une compagnie d'assurance automobile propose à ses clients quatre familles de tarifs identifiables par une couleur, du moins au plus onéreux.
Introduction au patrons de conception « Design patterns »
Introduction: Concepts de la programmation
Réflexivité et réseaux d’ information
Première expérience d’utilisation des Web Services dans SmartTools Didier Parigot Projet OASIS INRIA Sophia www-sop.inria.fr/oasis/SmartTools Journée.
Affichage interactif, bidimensionnel et incrémental de formules mathématiques Hanane Naciri et Laurence Rideau INRIA Sophia Antipolis CARI'2000.
19 septembre 2006 Tendances Logicielles MDD/MDA : Génération dapplications avec IBM Rational Software Architect Jean-Pierre Schoch –
UML - Présentation.
Les technologies XML Cours 3 : Les APIS XML Janvier Version 1.0 -
1 Les technologies XML Cours 1 : Les Web Services et Architectures Orientées Services Fé vrier Version 1.0 -
INTRODUCTION.
بسم الله الرحمن الرحيم. Institut Supérieure des Etudes Technologiques de Kébili.
Programmation orientée objet
Principes de la technologie orientée objets
le profil UML en temps réel MARTE
Concepts de base : la Classe Pour faire une comparaison simple, une classe serait a priori, une structure C avec des variables et des fonctions.
Révision Les principes SOLID.
Historique de SystemC Regroupe 4 courants didées: SCENIC Project : Synopsys+UC Irvine Philips System-Level Data Types, VSIA SLD DWG IMEC, Hardware-Software.
Journées Pattern Grenoble - 1 Une expérience à l'IUT de Bayonne : Les patrons Composite et Interprète Philippe Lopistéguy I.U.T. de Bayonne-Pays.
OIL & UPML DREVET - HUMBERT Introduction OIL : un langage de description dontologies UPML : un langage de description de systèmes à base.
Structures de données IFT-10541
Behavioral Design Patterns The Observer Pattern Roberto Demontis Sylvain Giroux.
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é.
Portée, arrimages et intervenants Évolution des méthodes
Journées Patterns, Grenoble, 3-4 Avril 2003 DR /AC/JPGpage 1 Agnès Conte Département Informatique - IUT2 Grenoble Transparents issus dune présentation.
Sensibilisation a la modelisation
Patrons de conceptions de créations
Transformation de modèles Kick Off Motor Jean Marc Jézéquel & Didier Vojtisek La vision Triskell : Umlaut NG.
INTRODUCTION.
Factory Design Patterns. Contents Factory patterns: principesFactory patterns: principes The Factory Method patternThe Factory Method pattern The Abstract.
Design Patterns en programmation par objets. Plan  Design patterns –De quoi s’agit-il? –Pourquoi faut-il les utiliser?  Design patterns essentiels 
Supports de formation au SQ Unifié
Designs Patterns comment rendre son code faiblement couplé, et maintenable...
Design Pattern Hichame ELKHALFI.
Le contenu est basé aux transparents du 7 ème édition de «Software Engineering» de Ian Sommerville«Software Engineering» de Ian Sommerville B.Shishedjiev.
Les design patterns.
Introduction au Génie Logiciel
5ième Classe (Mercredi, 19 octobre) Prog CSI2572.
C++ L’HERITAGE Fayçal BRAÏKI DUT INFORMATIQUE.
Factory Design Patterns Abstract Factory. Abstract Factory Design Pattern Plan Factory patterns: principesFactory patterns: principes The Factory Method.
ETNA – 1ème année Guillaume Belmas –
Initiation à la conception des systèmes d'informations
Conception d’un langage pour l’algorithme évolutionniste M atthieu CHOUTEAU Y ohann HUBERT C hristophe PANNEAU E stelle FILMON Mr SAUBION – Décembre 2002.
Présentation AICHA REVEL INGENIEUR D’ÉTUDE STERIA DEPARTEMENT TRD
Behavioral Design Patterns The Observer Pattern. Intention Définir une dépendance de “1” à “n” entre des objets de telle sorte que lorsque l’état d’un.
1 Vers la gestion de la cohérence dans les processus multi-modèles métier Wolfgang THEURER Ecole Nationale Supérieure d’Ingénieurs des Etudes et Techniques.
Iterator Design Pattern Alessandro Soro Sylvain Giroux.
Design Patterns Cours IUT 7 mars 2001 Arnaud Nauwynck & Nédra Mellouli
Notifications et Communication réseau D. BELLEBIA – 18/12/2007NSY208 CNAM.
Conception de Programmes - IUT de Paris - 1ère année Conception de Programmes Objectifs et organisation du cours Introduction à la P.O.O. et au.
L’enseignement de spécialité SLAM
Analyse Orientée Objet Cahier de Laboratoire. Sujet : Il s'agit de concevoir un outil de gestion pour une PME qui commercialise des stations météorologiques.
CSC Proprietary 6/20/2015 9:42:54 AM 008_5849_ER_Red 1 BPM - SOA Logo du client Synthèse de notions “fondamentales” par Guillaume Feutren, Stagiaire *
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
UML support à la COO 2ème année IUT Calais-Boulogne Bénédicte Talon
INSTITUT SUPERIEURE D’INFORMATIQUE Design Pattern
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.
TECHNOLOGIE – Avril 2008 Projet de programme 4 e : Thème : Confort et domotique Equipement intérieur Equipement extérieur Electroménager Vidéo, photo Son.
UML : méthode Processus. Introduction(1) ● Cycles ● Spécification par cas d'utilisation ● Identifier les besoins ● Analyse par cas d'utilisation ● Affiner.
Révision Les principes SOLID. Question  Qu’est-ce que le S de Solid?
Août 2009.
Transcription de la présentation:

Page de garde Introduction aux Design Patterns ISIA, Mars

Modélisation dobjets Limiter les dépendances entre objets Des objectifs parfois antagonistes : Encapsuler des données sans en empêcher laccès Simplicité dutilisation Trouver le bon niveau de granularité des objets Concevoir des objets polyvalents, flexibles, réutilisables Implémentation performante …

Modélisation dapplications Problèmes de conceptions récurrents : des Design Patterns Modéliser correctement une application : Processus complexe Design Patterns, Elements of Reusable Object-Oriented Software E. Gamma, R. Helm, R. Johnson, J. Vlissides - Addison Wesley Expertise acquise au fil des expériences Un (seminal) "livre de recettes" :

Un Design Pattern Description de la solution proposée Nom Exposé du problème Exemple dimplémentation Confrontation avec dautres Design Patterns Contexte de mise en œuvre, contraintes limitantes Conseils dimplémentation Relative standardisation du nommage des Design Patterns Modèles parfois (souvent ?) triviaux

Principales classes de Design Patterns Composition de groupes dobjets Patterns de création Création dobjets sans instanciation directe dune classe Patterns de composition Patterns comportementaux Modélisation des communications inter-objets et du flot de données

Les Design Patterns Purpose CreationalStructuralBehavioral Scope Class Factory MethodAdapterInterpreter Template Method Object Abstract Factory Builder Prototype Singleton Adapter Bridge Composite Decorator Facade Proxy Chain of Responsibility Command Iterator Mediator Memento Flyweight Observer State Strategy Visitor

Factory Method / Virtual Constructor

Abstract Factory Objectif : obtenir des instances de classes implémentant des interfaces connues, mais en ignorant le type réel de la classe obtenue Exemple : une application gérant des documents polymorphes générateur de compo- sants graphiques supportant une multitude de look-and-feels

Prototype Objectif : obtenir une instance dun objet à partir dune autre instance Exemple : drag-and-drop de composants inconnus avec touche Ctrl enfoncée

Singleton Objectif : sassurer quune seule instance dun type spécifique existe dans le système et fournir laccès à cet objet Exemple : un spooler dimpression

Adapter / Wrapper Objectif : obtenir un objet qui permet den utiliser un autre en conformité avec une certaine interface Exemple : mise en "conformité" de composants dorigines diverses

Proxy / Surrogate Objectif : obtenir un objet qui agit comme intermédiaire dans la communication avec un autre objet (un "passeur dordre") Exemples : un objet qui reporte les opérations coûteuses au moment où on utilise réellement les résultats de ces opérations (chargement dune image à la fin dun document, …) ; un objet qui transforme une collection en lecture-seule ; …

Composite Objectif : manipuler indifférement des objets atomiques ou des agrégats dobjets Exemple : une application manipulant des formes graphiques et des compositions de ces formes

Decorator Decorator / Wrapper Objectif : ajouter à des instances spécifiques des comportements spécifiques Exemple : bordure dun composant graphique

Facade Objectif : fournir une interface simplifiée et limitée à un système complexe Exemple : donner accès à des passes spécifiques dun compilateur

Chain of responsibility Objectif : Exemple :

Command Objectif : réifier une commande en un objet embarquant déventuels paramètres Exemple : uniformiser les différentes méthodes de commande dun système et gérer lundo et le redo

Interpreter Objectif : Exemple :

Iterator Objectif : permettre ditérer de manière générique sur les éléments dune collection, quelle que soit la nature des éléments ou de la collection Exemple : trop naze, on le fait tous les jours

Mediator Objectif : Exemple :

Memento Objectif : Exemple :

Observer / Listener Objectif : permettre à un objet dinformer dautres objets quil ne connaît pas de lévolution de son état interne Exemple : un bouton à la suite dun click

Strategy / Policy Objectif : utiliser de manière non spécifique une collection dalgorithme proches Exemple : algorithmes de tris de collections de données

State Objectif : un objet qui change de comportement en fonction de son état interne Exemple : une socket TCP (état non connectée, connectée, en attente de connection)

Template Method Objectif : Exemple :

Visitor Objectif : découpler une structure des opérations sur cette structure Exemple : analyses/transformations darbres de syntaxe abstraite dans un compilateur

Conclusions Des solutions-recettes adaptables pour des problèmes récurrents Des propositions de bases pour lélaboration de solutions plus complexes Modèles parfois (souvent ?) triviaux