Patron Adaptateur
Patron Adaptateur
Patron Adaptateur
Rapport
Mohamed_recherche@hotmail.fr/Medshili_isetkr@hotmail.fr
20 /11/2013
I. Un
Introduction
pattern est une rgle en trois parties exprimant une relation entre un
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.
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 2
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
du
motif
de
conception
Adaptateur
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 3
III.
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 4
IV.
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 5
- 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
Figure N2:Interface
Solution
Comme une solution on va crer un adaptateur qui exprime a figure suivante Figure N3
Page 6
Page 7
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.
Page 9
Page 10
VI.
Conclusion
Lutilisation des Design
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 11
VII.
Rfrences
S. Ishikawa, M. Silverstein, M. Jacobson, I. Fiksdahl-King and S. Angel, (1977), A Pattern Language : Towns, Buildings, Construction, (ISBN 0-19501919-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)
Page 12