-
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)