12
Institut supérieur de Mini-pr Elaboré par : Shili Moham Groupe : Master de recher Mohamed_rech Université De Sousse es sciences applique et de technologie Rapport rojet: Patron Adaptate med rche informatique [email protected]/Medshili_isetkr@hot 20 /11/2013 e de Sousse eur tmail.fr

Patron Adaptateur

Embed Size (px)

Citation preview

  • Institut suprieur des

    Mini-projet: Patron Adaptateur

    Elabor par : Shili Mohamed

    Groupe : Master de recherche informatique

    [email protected]/[email protected]

    Universit De Sousse

    Institut suprieur des sciences applique et de technologie de Sousse

    Rapport

    projet: Patron Adaptateur

    Shili Mohamed

    : Master de recherche informatique

    [email protected]/[email protected]

    20 /11/2013

    sciences applique et de technologie de Sousse

    projet: Patron Adaptateur

    [email protected]/[email protected]

  • Page 2

    I. Introduction

    Un pattern est une rgle en trois parties exprimant une relation entre un

    contexte, un problme et une solution (Christopher Alexander -1977)

    D'aprs Buschmann. (1996), Un design pattern ou patron de conception est une

    solution prouve un problme de conception rcurrent.

    Les patrons sont des solutions prouves des problmes spcifiques et

    rcurrents. Un patron dcrit un problme devant tre rsolu, une solution, et le

    contexte dans lequel cette solution est considre. Il nomme une technique et

    dcrit ses cots et ses avantages. Il permet une quipe dutiliser un vocabulaire

    commun pour dcrire leurs modles [Johnson 1997].

    Un pattern sexprime souvent par des interfaces et des classes abstraites, dans

    un schma UML

    Une classe abstraite est une classe dont l'implmentation n'est pas complte et

    qui n'est pasinstanciable. Elle sert de base d'autres classes drives (hrites).

    II. Dfinition de patron de conception Adaptateur

    Adaptateur est un patron de conception de type structural qui permet de

    convertir l'interface d'une classe en une autre interface que le client

    attend. Adaptateur fait fonctionner un ensemble des classes qui n'auraient pas pu

    fonctionner sans lui, cause d'une incompatibilit d'interfaces.

    En programmation informatique, les patrons de conception peuvent tre utiliss

    avant, pendant, ou aprs le travail de programmation: Utilis avant, le

    programmeur utilisera le patron comme guide lors de l'criture du code source.

    Utilis aprs il servira comme exemple pour relier diffrents modules de code

    source dj crits, ce qui implique d'crire le code source ncessaire leur

    liaison, et le code qui les fera correspondre au patron de conception.

  • Page 3

    Utilis pendant le travail de programmation, le programmeur constatera que le

    code qui vient d'tre crit a des points communs avec un patron existant et

    effectuera les modifications ncessaires pour que le code corresponde au patron.

    1. Structure

    Figure 1:Schma UML du motif de conception Adaptateur

    (http://fr.wikipedia.org/wiki/)

    2. Participants Target: Cible

    Dfinit l'interface mtier utilise par le Client.

    Client

    Travaille avec des objets implmentant l'interface Target

    Adaptee

    Dfinit une classe existante devant tre adapte.

    Adapter

    Fait correspondre la classe de Adapt l'interface Target

  • Page 4

    III. Reprsentation dun patron de conception

    Les Design Patterns sont reprsents par :

    Nom : augmente le vocabulaire, rifie une ide de solution, permet de

    mieux communiquer.

    Problme : quand appliquer la forme, le contexte...

    Solution : les lments de la solution, leurs relations, responsabilits,

    collaborations. Pas de manire prcise, mais suggestive...

    Consquences : rsultats et compromis issus de l'application de la

    forme

    Cette reprsentation aide surtout mieux comprendre l'utilisation et la

    logique interne de chaque patron, mais ne correspond pas l'usage habituel du

    terme. Le mot structure serait peut-tre plus adapt.

    Un aspect de construction plus important est l'orthogonalit: chaque patron doit

    correspondre une approche diffrente, qui ne rpte pas les ides ou stratgies

    prsentes dans d'autres patrons. Cette qualit devrait permettre d'aider le

    concepteur dcortiquer un problme et en rsoudre chaque aspect d'une

    faon organise, ainsi que de combiner les patrons pour construire une solution.

    Exemple

    Nom: Salle dattente

    Problme : On doit attendre

    Solution: Toujours relaxante et pas confine

    Consquences: Attente active ou passive ? Dure de lattente ?

    Distraction?

    Exemples

    Aroport, dentiste, ...

  • Page 5

    IV. Organisation de patron de conception

    On distingue trois familles de patrons de conception selon leur utilisation :

    1. Patrons de cration

    Donnent des solutions aux problmes lis l'instanciation des classes

    2. Patrons de structure

    Donnent des solutions aux problmes de structuration des classes,

    d'abstraction, de rutilisation

    3. Patrons de comportement

    Ils permettent d'organiser les objets pour quils collaborent entre eux

    Comme est mentionn ci-dessus, le patron adaptateur fait partie de la famille

    des patrons structuraux.

    Autre Patrons de structure

    -Les patrons structurels : Ils proposent des schmas de classes et d'objets pour

    raliser des structures plus complexes.

    - Le Pont : Il dcouple une abstraction de son implmentation, afin que les deux

    puissent tre modifis indpendamment.

    - Le Composite : Il organise les objets en structure arborescente

    reprsentant une hirarchie de composition. Il permet un traitement uniforme

    des objets individuels, et des objets composs.

    - Le Dcorateur : Il attache des responsabilits supplmentaires un objet

    de faon dynamique. Il offre une solution alternative la drivation de classes

    pour l'extension de fonctionnalits.

  • Page 6

    - La Faade : Elle fournit une interface unifie pour un ensemble d'interfaces

    d'un Sous-systme. Elle dfinit une interface de plus haut niveau, qui rend le

    sous-systme plus facile utiliser.

    - Le Poids mouche : Il supporte de manire efficace un grand nombre

    d'instances de Granularit fine.

    - La Procuration : Elle permet de remplacer temporairement un objet par un

    autre, pour en contrler l'accs.

    V. Les Exemples

    1. Exemple N1

    Problmatique

    Linterface propritaire ne correspond pas celle utilise dans notre code, le

    systme existant ne peut donc pas utiliser la classe propritaire.

    Figure N2:Interface

    Solution

    Comme une solution on va crer un adaptateur qui exprime a figure

    suivante Figure N3

  • Page 7

    Figure N3:Interface Adapteur

    2. Exemple N2

    Figure N 4:serveur web gre des documents

  • Page 8

    Figure N 5:Interface Adaptateur qui grer de document PDF

    & HTML

    Figure N 6:Interface Adaptateur avec le code java

  • Page 9

    3. Exemple N3

    Exemple de situation :

    Jutilise une bibliothque de traitement dimages (dont je ne peux pas modifier

    le code source). Pour fonctionner, elle attend un objet fournissant une interface

    daccs en lecture et en criture un tableau en deux dimensions contenant des

    triplets doctets.

    Jaimerais linterfacer avec une bibliothque fournissant une abstraction sur des

    tableaux unidimensionnels stocks de manire persistante dans une base de

    donnes ou dans un systme de fichiers.

    Problme : Comment concilier les services proposs par la bibliothque

    dentres/sorties et linterface attendue par la bibliothque de traitement

    dimages.

    Solution : Utiliser un objet qui implmente linterface attendue en faisant appel

    aux services proposs par une instance de la bibliothque dentres/sorties.

    Figure N7: code java

  • Page 10

    Figure N8: code java

  • Page 11

    VI. Conclusion

    On termine par lutilit de patron de conception Lutilisation des Design

    Patterns offre de nombreux avantages.

    Tout dabord cela permet de rpondre un problme de conception grce une

    solution prouve et valide par des experts. Ainsi on gagne en rapidit et en

    qualit de conception ce qui diminue galement les cots.

    De plus, les Design Patterns sont rutilisables et permettent de mettre en avant

    les bonnes pratiques de conception.

  • Page 12

    VII. Rfrences S. Ishikawa, M. Silverstein, M. Jacobson, I. Fiksdahl-King and

    S. Angel, (1977), A Pattern Language : Towns, Buildings, Construction, (ISBN 0-19-

    501919-9)

    Design patterns - Tte la premire, de Eric Freeman, Elisabeth Freeman, Kathy

    Sierra et Bert Bates. (ISBN 2-84177-350-7) (1redition, septembre 2005)

    Pattern Languages of Program Design - James O. Coplien, Douglas C. Schmidt.

    (1995), (ISBN 0-201-60734-4)

    Les Patrons Abmes - Dtection, Explications et Restructuration - Cdric

    Bouhours, 2010, (ISBN 6-131-53501-9)