Les Design Patterns. Reda Bendraou

Documents pareils
Plan. Patrons de conception. Motivations. Design Pattern : principe. Philippe Collet

Patrons de Conception (Design Patterns)

Forthcoming Database

Cedric Dumoulin (C) The Java EE 7 Tutorial

Analyse,, Conception Objet

Once the installation is complete, you can delete the temporary Zip files..

Par Laurent DESECHALLIERS. Mastère Spécialisé en Management de Projets en Milieu Industriel. CESI de Rouen Promotion 2002/2003.

Instructions Mozilla Thunderbird Page 1

WEB page builder and server for SCADA applications usable from a WEB navigator

The new consumables catalogue from Medisoft is now updated. Please discover this full overview of all our consumables available to you.

Projet Active Object

UML : Unified Modeling Language

Efficient Object Versioning for Object- Oriented Languages From Model to Language Integration

Design patterns. Design patterns - définition. Design patterns - avantages

IFT2255 : Génie logiciel

REMOTE DATA ACQUISITION OF EMBEDDED SYSTEMS USING INTERNET TECHNOLOGIES: A ROLE-BASED GENERIC SYSTEM SPECIFICATION

Cycle de vie du logiciel. Unified Modeling Language UML. UML: définition. Développement Logiciel. Salima Hassas. Unified Modeling Language

Principes. 2A-SI 3 Prog. réseau et systèmes distribués 3. 3 Programmation en CORBA. Programmation en Corba. Stéphane Vialle

ADHEFILM : tronçonnage. ADHEFILM : cutting off. ADHECAL : fabrication. ADHECAL : manufacturing.

MANUEL MARKETING ET SURVIE PDF

Utiliser une WebCam. Micro-ordinateurs, informations, idées, trucs et astuces

LE FORMAT DES RAPPORTS DU PERSONNEL DES COMMISSIONS DE DISTRICT D AMENAGEMENT FORMAT OF DISTRICT PLANNING COMMISSION STAFF REPORTS

MELTING POTES, LA SECTION INTERNATIONALE DU BELLASSO (Association étudiante de lʼensaparis-belleville) PRESENTE :

VTP. LAN Switching and Wireless Chapitre 4

Quelques patterns pour la persistance des objets avec DAO DAO. Principe de base. Utilité des DTOs. Le modèle de conception DTO (Data Transfer Object)

JSIam Introduction talk. Philippe Gradt. Grenoble, March 6th 2015

Gestion des prestations Volontaire

Contents Windows

THÈSE. présentée à TÉLÉCOM PARISTECH. pour obtenir le grade de. DOCTEUR de TÉLÉCOM PARISTECH. Mention Informatique et Réseaux. par.

Micro-ordinateurs, informations, idées, trucs et astuces utiliser le Bureau à distance

Editing and managing Systems engineering processes at Snecma

Exemple PLS avec SAS

Règlement sur le télémarketing et les centres d'appel. Call Centres Telemarketing Sales Regulation

COPYRIGHT Danish Standards. NOT FOR COMMERCIAL USE OR REPRODUCTION. DS/EN 61303:1997

Héritage presque multiple en Java (1/2)

Quick Start Guide This guide is intended to get you started with Rational ClearCase or Rational ClearCase MultiSite.

Le No.1 de l économie d énergie pour patinoires.

MANAGEMENT SOFTWARE FOR STEEL CONSTRUCTION

How to Login to Career Page

Discours du Ministre Tassarajen Pillay Chedumbrum. Ministre des Technologies de l'information et de la Communication (TIC) Worshop on Dot.

Frequently Asked Questions

Les Portfolios et Moodle Petit inventaire

Introduction au Génie Logiciel

Academic Project. B2- Web Development. Resit Project. Version 1.0 Last update: 24/05/2013 Use: Students Author: Samuel CUELLA

Le Cloud Computing est-il l ennemi de la Sécurité?

Prototype de canal caché dans le DNS

SERVEUR DÉDIÉ DOCUMENTATION

Practice Direction. Class Proceedings

Instructions pour mettre à jour un HFFv2 v1.x.yy v2.0.00

calls.paris-neuroscience.fr Tutoriel pour Candidatures en ligne *** Online Applications Tutorial

Application Form/ Formulaire de demande

RAPID Prenez le contrôle sur vos données

Deadline(s): Assignment: in week 8 of block C Exam: in week 7 (oral exam) and in the exam week (written exam) of block D

Comprendre l impact de l utilisation des réseaux sociaux en entreprise SYNTHESE DES RESULTATS : EUROPE ET FRANCE

THE OUAGADOUGOU RECOMMENDATIONS INTERNET INFRASTRUCTURE FOR AN AFRICAN DIGITAL ECONOMY 5-7 MARCH 2012

Package Contents. System Requirements. Before You Begin

Lavatory Faucet. Instruction Manual. Questions?

Modélisation UML. Christine Solnon INSA de Lyon - 3IF 1/140.

Un environnement de déploiement automatique pour les applications à base de composants

CEPF FINAL PROJECT COMPLETION REPORT

Diagrammes de Package, de déploiement et de composants UML

Présentation par François Keller Fondateur et président de l Institut suisse de brainworking et M. Enga Luye, CEO Belair Biotech

DOCUMENTATION - FRANCAIS... 2

Analyse,, Conception des Systèmes Informatiques

lundi 3 août 2009 Choose your language What is Document Connection for Mac? Communautés Numériques L informatique à la portée du Grand Public

1-Introduction 2. 2-Installation de JBPM 3. 2-JBPM en action.7

Plan. Department of Informatics

Stage Ingénieur en développement logiciel/modélisation 3D

English Q&A #1 Braille Services Requirement PPTC Q1. Would you like our proposal to be shipped or do you prefer an electronic submission?

Ingénierie et gestion des connaissances

GIGABIT PCI DESKTOP ADAPTER DGE-530T. Quick Installation Guide+ Guide d installation+

CONTEC CO., LTD. Novembre 2010

ÉTUDES MÉDICALES DE PREMIER CYCLE

Tutoriel: Création d'un Web service en C++ avec WebContentC++Framework

CORBA. (Common Request Broker Architecture)

3615 SELFIE. HOW-TO / GUIDE D'UTILISATION

Mise en place d un système de cabotage maritime au sud ouest de l Ocean Indien. 10 Septembre 2012

Archived Content. Contenu archivé

DOCUMENTATION - FRANCAIS... 2

Bill 69 Projet de loi 69

Acce s aux applications informatiques Supply Chain Fournisseurs

ANGULAR JS AVEC GDE GOOGLE

Bienvenue au séminaire HP Service Anywhere Mardi 11 février 2014

CEST POUR MIEUX PLACER MES PDF

Pour signifier qu'une classe fille hérite d'une classe mère, on utilise le mot clé extends class fille extends mère

Lambda! Rémi Forax Univ Paris-Est Marne-la-Vallée

86 rue Julie, Ormstown, Quebec J0S 1K0

Chapitre VI- La validation de la composition.

Modélisation de Lignes de Produits en UML *

PIB : Définition : mesure de l activité économique réalisée à l échelle d une nation sur une période donnée.

INDIVIDUALS AND LEGAL ENTITIES: If the dividends have not been paid yet, you may be eligible for the simplified procedure.

affichage en français Nom de l'employeur *: Lions Village of Greater Edmonton Society

- Couches - Éléments - Domaines - ArchiMate et les techniques du BABOK

Vanilla : Virtual Box

et Active Directory Ajout, modification et suppression de comptes, extraction d adresses pour les listes de diffusion

Institut d Acclimatation et de Management interculturels Institute of Intercultural Management and Acclimatisation

Créé par Goldfing & Pblabla Créé le 02/05/ :49:00. Guide pour la déclaration d impôt

DOCUMENTATION MODULE BLOCKCATEGORIESCUSTOM Module crée par Prestacrea - Version : 2.0

UNIVERSITE DE YAOUNDE II

Transcription:

Les Design Patterns Reda Bendraou reda.bendraou{{@}}lip6.fr http://pagesperso-systeme.lip6.fr/reda.bendraou/ Le contenu de ce support de cours a été influencé par les lectures citées à la fin de ce support. Reda Bendraou LI386-S1 Génie Logiciel UPMC Cours 4: Les Design Pattern 1/62

Les Design Patterns Patterns expose knowledge about software construction that has been gained by many experts over many years. All work on patterns should therefore focus on making this precious resource widely available. Every software developer should be able to use patterns effectively when building software systems. When this is achieved, we will be able to celebrate the human intelligence that patterns reflect, both in each individual pattern and in all patterns in their entirety. From Pattern oriented software architecture by Buschmann et al. Reda Bendraou LI386-S1 Génie Logiciel UPMC Cours 4: Les Design Pattern 2/62

Origines Cristopher Alexander et al.: A Pattern Language, 1977 Cristopher Alexander: The Timeless Way of Building, 1979 Reda Bendraou LI386-S1 Génie Logiciel UPMC Cours 4: Les Design Pattern 3/62

Origines Proposition d Alexander dans le domaine de l architecture: Description d'un problème récurrent et de sa solution Synonymes connus: Forme de conception, pattern, modèle, patron de conception, motif, etc. Reda Bendraou LI386-S1 Génie Logiciel UPMC Cours 4: Les Design Pattern 4/62

Pattern: Définition «Each pattern describes a problem which occurs over and over again in our environment, and then describes the core of the solution to that problem, in such a way that you can use this solution a million times over, without ever doing it the same way twice» C. Alexander, The Timeless Way of Building, 1979 Ou tout simplement: une solution générale pour un problème récurrent dans un contexte donné Reda Bendraou LI386-S1 Génie Logiciel UPMC Cours 4: Les Design Pattern 5/62

Pourquoi les Design Patterns Rendre disponible et explicite des pratiques de bonne conception Capturer un savoir faire, le rendre pérenne réutilisable, etc. Nommer et rendre explicite une structure de haut niveau qui n est pas directement exprimable sous forme de code Créer un vocabulaire commun pour les développeurs et les concepteurs Reda Bendraou LI386-S1 Génie Logiciel UPMC Cours 4: Les Design Pattern 6/62

Pourquoi pas la même chose en Informatique? Naissance Historique des Software Design Patterns 1987 Ward Cunningham and Kent Beck: Using Pattern Languages for Object Oriented Programming 5 pattern language for Smalltalk GUIs future expectation: 100-150 patterns could cover OO programming! 1990-1993 OOPSLA workshops, ideas developed 1993 The Hillside Group 1994 Start of PLoP conferences (pattern reviews), GoF book 1995 the first PLoP book 1996 A system of Patterns, Buchmann et. al.) Reda Bendraou LI386-S1 Génie Logiciel UPMC Cours 4: Les Design Pattern 7/62

Design Patterns en Informatique: GoF Un catalogue de 23 Patterns Reda Bendraou LI386-S1 Génie Logiciel UPMC Cours 4: Les Design Pattern 8/62

Documentation d un Pattern selon le GoF Nom et classification Intention Autres noms connus Motivation (scénario) Applicabilité Structure (OMT) Participants (classes ) Collaborations Conséquences Implantation Exemple de code Usages connus Patterns associés Reda Bendraou LI386-S1 Génie Logiciel UPMC Cours 4: Les Design Pattern 9/62

Remarque Important La référence "Design Patterns" par le GoF décrit les formes par des diagrammes OMT... Mais l'héritage et les objets ne sont pas nécessaires Reda Bendraou LI386-S1 Génie Logiciel UPMC Cours 4: Les Design Pattern 10/62

GoF Design Pattern: Classification SCOPE CLASS PURPOSE CREATIONAL STRUCTURAL Factory Method Adapter (class) BEHAVIOURAL Interpreter Template Method OBJECT Abstract Factory Adapter (object) Command. Builder Bridge Iterator Prototype Composite Mediator Singleton Decorator Memento Facade Observer Flyweight State Proxy Strategy Visitor Chain Of Resp. Reda Bendraou LI386-S1 Génie Logiciel UPMC Cours 4: Les Design Pattern 11/62

Les Patterns sont liés! Reda Bendraou LI386-S1 Génie Logiciel UPMC Cours 4: Les Design Pattern 12/62

Les Design Patterns Créateurs Reda Bendraou LI386-S1 Génie Logiciel UPMC Cours 4: Les Design Pattern 13/62

Patterns Créateurs: Objectif Abstraire le processus d'instanciation Rendre indépendant de la façon dont les objets sont créé éés, composés, s, assemblés, s, représent sentés Encapsuler la connaissance de la classe concrète qui instancie Cacher ce qui est créé éé, qui crée, comment et quand Reda Bendraou LI386-S1 Génie Logiciel UPMC Cours 4: Les Design Pattern 14/62

Patterns Créateurs: Exemples -Abstract Factory -Singleton Reda Bendraou LI386-S1 Génie Logiciel UPMC Cours 4: Les Design Pattern 15/62

Abstract Factory But permettre de créer des familles de produits en masquant les mécanismes de choix des classes de mise en œuvre de ces produits Exemple création d une interface homme-machine indépendante de la plate-forme Le fameux jeux du Labyrinthe enchanté Reda Bendraou LI386-S1 Génie Logiciel UPMC Cours 4: Les Design Pattern 16/62

Exemple : interface homme-machine (IHM) On veut développer une application graphique multiplateformes il existe une bibliothèque graphique pour chaque système d une plate-forme à l autre les classes d IHM sont différentes les plate-formes sont Windows, MacOS, Linux, Solaris FenetreMotif FenetrePM ScrollBPM BoutonMotif BoutonPM ScrollBMotif Reda Bendraou LI386-S1 Génie Logiciel UPMC Cours 4: Les Design Pattern 17/62

Exemple : interface homme-machine (IHM) Solutions possibles Quatre applications différentes quatre sources qui vont vite diverger Un seul source avec des si alors sinon avec des #ifdef #endif Emploi de Abstract Factory Reda Bendraou LI386-S1 Génie Logiciel UPMC Cours 4: Les Design Pattern 18/62

Exemple interface homme-machine (IHM): Solution Diagramme Statique Reda Bendraou LI386-S1 Génie Logiciel UPMC Cours 4: Les Design Pattern 19/62

Abstract Factory: Structure Générale Reda Bendraou LI386-S1 Génie Logiciel UPMC Cours 4: Les Design Pattern 20/62

Abstract Factory: Rôle de client Client détient une référence sur une Abstract factory crée des produits par appel des opérations de cette référence ne connaît pas la classe concrète des produits Reda Bendraou LI386-S1 Génie Logiciel UPMC Cours 4: Les Design Pattern 21/62

Abstract Factory: Rôle de Abstract Product Masquer la classe concrète Offrir un ensemble d opérations applicables à toutes les variantes d un même produit Reda Bendraou LI386-S1 Génie Logiciel UPMC Cours 4: Les Design Pattern 22/62

Abstract Factory: Rôle de Abstract Factory Comporte une opération de création pour chaque produit, une opération de création retourne un objet produit La classe concrète des produits est masquée Reda Bendraou LI386-S1 Génie Logiciel UPMC Cours 4: Les Design Pattern 23/62

Abstract Factory: Rôle de Concrete Product Contient la mise en œuvre spécifique des opérations Non accessible au client Peut être amené à jouer un rôle d adaptateur Reda Bendraou LI386-S1 Génie Logiciel UPMC Cours 4: Les Design Pattern 24/62

Abstract Factory: Rôle de Concrete Factory Chargée de mettre en œuvre la création des produits concrets Une fabrique concrète pour une plate-forme/variante/version donnée ne fait que des produits concrets de la même plateforme/variante/version Reda Bendraou LI386-S1 Génie Logiciel UPMC Cours 4: Les Design Pattern 25/62

Abstract Factory: Diagramme de séquence générique Reda Bendraou LI386-S1 Génie Logiciel UPMC Cours 4: Les Design Pattern 26/62

Exemple de l IHM Reda Bendraou LI386-S1 Génie Logiciel UPMC Cours 4: Les Design Pattern 27/62

Abstract Factory: Quand l utiliser? un système doit être indépendant de la façon dont ses produits sont créés, assemblés, représentés un système repose sur un produit d'une famille de produits une famille de produits doit être utilisée ensemble, pour renforcer cette contrainte on veut définir une interface unique à une famille de produits concrets Reda Bendraou LI386-S1 Génie Logiciel UPMC Cours 4: Les Design Pattern 28/62

Singleton Quand l utiliser? Quand il n'y a qu'une unique instance d'une classe et qu'elle doit être accessible de manière connue Lorsqu une instance unique peut être sous-classée et que les clients peuvent référencer cette extension sans avoir à modifier leur code Reda Bendraou LI386-S1 Génie Logiciel UPMC Cours 4: Les Design Pattern 29/62

Singleton: Solution (Structure) Reda Bendraou LI386-S1 Génie Logiciel UPMC Cours 4: Les Design Pattern 30/62

Singleton: Solution (Code) public class Singleton { private static Singleton singleton = null; // Le constructeur en privé pour interdire l instanciation de classe de //l extérieur private Singleton() {} // On passera par cette méthode pour instancier la classe public static Singleton getinstance() { if (theinstance == null) theinstance = new Singleton(); return theinstance; } } Reda Bendraou LI386-S1 Génie Logiciel UPMC Cours 4: Les Design Pattern 31/62

Patterns Créateurs: Les autres Patterns Builder: Factory for building complex objects incrementally Factory Method: Lets a class defer instantiation to subclasses Prototype: Factory for cloning new instances from a prototype Reda Bendraou LI386-S1 Génie Logiciel UPMC Cours 4: Les Design Pattern 32/62

Les Design Patterns Comportementaux Reda Bendraou LI386-S1 Génie Logiciel UPMC Cours 4: Les Design Pattern 33/62

Patterns Comportementaux: Objectifs Décrire: des algorithmes des comportements entre objets des formes de communication entre objets Reda Bendraou LI386-S1 Génie Logiciel UPMC Cours 4: Les Design Pattern 34/62

Patterns Comportementaux: Exemple - Observer Reda Bendraou LI386-S1 Génie Logiciel UPMC Cours 4: Les Design Pattern 35/62

Pattern Observer Le patron de conception Observer (observateur) permet de coordonner deux objets : un sujet et un observateur (ou +ieurs) le sujet a un état interne (défini par la valeur de ses attributs) qui change l observateur doit se synchroniser avec les changements Reda Bendraou LI386-S1 Génie Logiciel UPMC Cours 4: Les Design Pattern 36/62

Pattern Observer: Quand l utiliser? Quand le changement d'un objet se répercute vers d'autres Une abstraction a plusieurs aspects, dépendant l'un de l'autre. Encapsuler ces aspects indépendamment permet de les réutiliser séparément Quand un objet doit prévenir d'autres objets sans pour autant les connaitre Reda Bendraou LI386-S1 Génie Logiciel UPMC Cours 4: Les Design Pattern 37/62

Pattern Observer: Exemple toute création, suppression ou renommage de fichier dans le dossier doit être répercutr percutée Reda Bendraou LI386-S1 Génie Logiciel UPMC Cours 4: Les Design Pattern 38/62

Pattern Observer: Autre exemple d emploi Reda Bendraou LI386-S1 Génie Logiciel UPMC Cours 4: Les Design Pattern 39/62

Pattern Observer: Diagramme statique générique Reda Bendraou LI386-S1 Génie Logiciel UPMC Cours 4: Les Design Pattern 40/62

Pattern Observer: Diagramme de séquence Reda Bendraou LI386-S1 Génie Logiciel UPMC Cours 4: Les Design Pattern 41/62

Pattern Observer: Rôles Rôles Subject: Comporte un état interne type non spécifié un patron de conception est indépendant de ce genre de détails Est chargé de gérer une collection d abonnés capable de recevoir des notifications Est chargé d envoyer un message aux abonnés lorsque son état change Observer: Est capable de réagir à la réception d un message de notification venant d un sujet Reda Bendraou LI386-S1 Génie Logiciel UPMC Cours 4: Les Design Pattern 42/62

Pattern Observer: Définition de la structure Une interface Subject comporte les opérations de gestion d abonnement ne comporte pas les opérations d accès à l état Une classe ConcreteSubject contient les opérations d accès à l état Une interface Observer contient l opération update() Une classe concrète ConcreteObserver cette opération sera mise en œuvre par les classes concrètes héritant de Observer chaque méthode mettant en œuvre update pourra interroger le sujet pour déterminer comment se synchroniser Reda Bendraou LI386-S1 Génie Logiciel UPMC Cours 4: Les Design Pattern 43/62

Patterns Comportementaux: Les autres Patterns Chain of Responsibility: Uncouple request sender from precise receiver on a chain. Command: Request reified as first-class object Interpreter: Language interpreter for a grammar Iterator: Sequential access to elements of any aggregate Mediator: Manages interactions between objects Memento: Captures and restores object states (snapshot) State: State reified as first-class object Strategy: Flexibly choose among interchangeable algorithms Template Method: Skeleton algo. with steps supplied in subclass Visitor: Add operations to a set of classes without modifying them each time Reda Bendraou LI386-S1 Génie Logiciel UPMC Cours 4: Les Design Pattern 44/62

Les Design Patterns Structuraux Reda Bendraou LI386-S1 Génie Logiciel UPMC Cours 4: Les Design Pattern 45/62

Patterns Structuraux: Objectifs Découpler interfaces et implantations de classes et d objets Décrire comment les objets sont assemblés Reda Bendraou LI386-S1 Génie Logiciel UPMC Cours 4: Les Design Pattern 46/62

Patterns Structuraux: Exemple - Composite Reda Bendraou LI386-S1 Génie Logiciel UPMC Cours 4: Les Design Pattern 47/62

Pattern Composite Objectifs: représenter une hiérarchie d'objets ignorer la différence entre un composant simple et un composant en contenant d'autres. (interface uniforme) Reda Bendraou LI386-S1 Génie Logiciel UPMC Cours 4: Les Design Pattern 48/62

Pattern Composite: Structure Reda Bendraou LI386-S1 Génie Logiciel UPMC Cours 4: Les Design Pattern 49/62

Pattern Composite: Exemple Reda Bendraou LI386-S1 Génie Logiciel UPMC Cours 4: Les Design Pattern 50/62

Pattern Composite: Rôles Composant déclare les opérations structurelles déclare les opérations de traitement Client Détient la structure, peut la modifier et demander des traitements Feuille ne contient jamais de descendants Composite peut contenir des descendants met en œuvre un parcours si besoin Reda Bendraou LI386-S1 Génie Logiciel UPMC Cours 4: Les Design Pattern 51/62

Patterns Structuraux: Les autres Patterns Adapter: Convert the interface of a class into another interface clients expect. Bridge: Decouple an abstraction from its implementations Decorator: Extends an object functionalities dynamically. Façade: Simple interface for a subsystem Flyweight: Efficiently sharing many Fine-Grained Objects Proxy: Provide a surrogate or placeholder for another object to control access to it. Reda Bendraou LI386-S1 Génie Logiciel UPMC Cours 4: Les Design Pattern 52/62

Design Patterns: Résumons! Reda Bendraou LI386-S1 Génie Logiciel UPMC Cours 4: Les Design Pattern 53/62

Design Pattern: le plus dur! Le plus dur quand on veut appliquer un Pattern: Trouver les bons objets Bien choisir la granularité des objets Spécifier les interfaces des objets Spécifier l'implantation des objets Mieux réutiliser héritage vs composition délégation Compiled-Time vs Run-Time Structures Concevoir pour l'évolution Reda Bendraou LI386-S1 Génie Logiciel UPMC Cours 4: Les Design Pattern 54/62

Ce que n est pas un Pattern Une brique Un pattern dépend de son environnement Ce n est pas du code Une règle Un pattern ne peut pas s appliquer mécaniquement Ne pas hésiter à l adapter à vos besoins (notion de variantes) Une méthode Ne guide pas une prise de décision ; un pattern est la décision prise Sans problèmes potentiels Plus de classes, plus de dépendances, besoin de documenter, etc. Mal utilisé (inapproprié) peut affecter les performances Reda Bendraou LI386-S1 Génie Logiciel UPMC Cours 4: Les Design Pattern 55/62

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... Reda Bendraou LI386-S1 Génie Logiciel UPMC Cours 4: Les Design Pattern 56/62

Avantages Un vocabulaire commun, facilite la communication 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 solutions Reda Bendraou LI386-S1 Génie Logiciel UPMC Cours 4: Les Design Pattern 57/62

Quelques Conseils pour savoir quel pattern utiliser! Création d'un objet en référençant sa classe explicitement...lien à une implantation particulière...pour éviter utilisez AbstractFactory, FactoryMethod, Prototype Dépendance d'une opération spécifique...pour rendre plus souple utilisez Chain Of Responsibility, Command Dépendance d'une couche matérielle ou logicielle utilisez AbstractFactory, Bridge Reda Bendraou LI386-S1 Génie Logiciel UPMC Cours 4: Les Design Pattern 58/62

Quelques Conseils pour savoir quel pattern utiliser! Dépendance d'une implantation...pour rendre plus souple utilisez AbstractFactory, Bridge, Memento, Proxy Dépendance d'un algorithme particulier...builder, Iterator, Strategy, TemplateMethod, Strategy Couplage fort...relâcher les relations utilisez AbstractFactory, Bridge, Chain Of Responsibility, Command, Facade, Mediator, Observer Reda Bendraou LI386-S1 Génie Logiciel UPMC Cours 4: Les Design Pattern 59/62

Quelques Conseils pour savoir quel pattern utiliser! Etendre les fonctionnalités en sous-classant peut être couteux (tests, compréhension des superclasses, etc) utilisez aussi la délégation, la composition...bridge, Chain Of Responsibility, Composite, Decorator, Observer, Strategy, Proxy Impossibilité de modifier une classe...absence du source, trop de répercussions, voyez Adapter, Decorator, Visitor Reda Bendraou LI386-S1 Génie Logiciel UPMC Cours 4: Les Design Pattern 60/62

Autres Patterns Il existe aussi d autres patterns Architecture Analyse Reda Bendraou LI386-S1 Génie Logiciel UPMC Cours 4: Les Design Pattern 61/62

Lectures Software Engineering, Ian Sommerville, Addison Wesley; 8 edition (15 Jun 2006), ISBN-10: 0321313798 The Mythical Man-Month Frederick P. Brooks JR., Addison-Wesley, 1995 Cours de Software Engineering du Prof. Bertrand Meyer à cette @: http://se.ethz.ch/teaching/ss2007/252-0204-00/lecture.html Cours d Antoine Beugnard à cette @: http://public.enst-bretagne.fr/~beugnard/ ----------------------- UML Distilled 3rd édition, a brief guide to the standard object modeling language Martin Fowler, Addison-Wesley Object Technology Series, 2003, ISBN-10: 0321193687 UML2 pour les développeurs, cours avec exercices et corrigés Xavier Blanc, Isabelle Mounier et Cédric Besse, Edition Eyrolles, 2006, ISBN-2-212-12029-X UML 2 par la pratique, études de cas et exercices corrigés, Pascal Roques, 6 ème édition, Edition Eyrolles, 2008 Cours très intéressant du Prof. Jean-Marc Jézéquel à cette @: http://www.irisa.fr/prive/jezequel/enseignement/polyuml/poly.pdf La page de l OMG dédiée à UML: http://www.uml.org/ ------------------------ Design patterns. Catalogue des modèles de conception réutilisables Richard Helm (Auteur), Ralph Johnson (Auteur), John Vlissides (Auteur), Eric Gamma (Auteur), Vuibert informatique (5 juillet 1999), ISBN-10: 2711786447 Reda Bendraou LI386-S1 Génie Logiciel UPMC Cours 4: Les Design Pattern 62/62