Vous êtes sur la page 1sur 30

EXPOSÉ SPÉCIFICATION ET CONCEPTION DE LOGICIELS

DESIGN PATTERN : LE PATRON ADAPTATEUR

Début
Présenté par Mohamed DIOP
Supervisé par BOUDAA BOUDJEMAA
Plan

1 Introduction

2 Les Adaptateurs Dans Le Monde LE PATRON


ADAPTATEUR
3 Problème et Solution

4 Avantages et Inconvénients

5 Conclusion

1
I INTRODUCTION
INTRODUCTION
Le patron de conception Adaptateur (ou the adapter design pattern en anglais) est un patron
de conception structurel qui permet à des objets avec des interfaces incompatibles de pouvoir
travailler ensemble. Le but de ce patron est de créer une interface unifiée qui permet à des objets
de collaborer sans avoir à modifier leur code source.
Le patron Adaptateur utilise un objet adaptateur pour faire la conversion entre l’interface
d’un objet et celle d’un autre objet. L’objet adaptateur encapsule l’objet incompatible et fournit
une interface conforme à l’utilisation de l’objet cible. Ainsi, l’objet cible peut utiliser
l’adaptateur pour interagir avec l’objet incompatible encapsulé.

3
LES
II ADAPTATEURS
DANS LE MONDE
LA PRISE
ÉLECTRIQUE
ADAPTÉE

Un exemple courant et parlant du patron


adaptateur est l’utilisation d’un
adaptateur de prise électrique. En effet,
le voyage dans un pays étranger pourrait
nous obliger à utiliser un adaptateur de
prise électrique (que celui-ci soit
universel ou pas) pour pouvoir alimenter
nos appareils électroniques du fait de
l’incompatibilité entre les prises murales
et les têtes de prises. Celui-ci permettra
de convertir la prise locale en une prise
compatible.

5
ADAPTATEURS
ORIENTÉS OBJETS

Supposons que nous ayons un système dans


lequel on veut charger la nouvelle
bibliothèque d’un fournisseur donné, mais
que ce nouveau fournisseur a conçu ses
interfaces différemment du précédent.
En tant que bon développeur, nous
refuserons de résoudre ce problème en
voulant modifier notre code car cela sera
trop long et pénible. De même pour la
bibliothèque du nouveau fournisseur.

6
ADAPTATEURS
ORIENTÉS OBJETS

Donc la solution qui s’offre à nous


est l’écriture d’une classe qui adapte
l’interface de la bibliothèque du
nouveau fournisseur pour
correspondre à celle dont on a
besoin.

7
ADAPTATEURS
ORIENTÉS OBJETS

Ainsi l’adaptateur jouera le rôle


d’intermédiaire entre notre système
et le fournisseur en traduisant nos
requêtes pour qu’elles soient
compréhensibles par le fournisseur.

8
III
PROBLÈME ET
SOLUTION
COURANT ALTERNATIF EN COURANT
CONTINU (AC/DC)
Problème
Nous disposons d’un nouvel appareil qu’on a conçu (peut-être téléphone, ordinateur ou appareil
électronique) qui doit être alimenté via de l’électricité produite dans un central électrique. Le
central électrique en question produit de l’électricité en alternance grâce à une turbine et un
alternateur donc un courant alternatif. Or notre appareil a besoin d’un courant continu qui, non
seulement permet d’éviter tout dommage dû grâce à une surtension ou sous-tension, mais aussi
de garantir la fiabilité de son usage. Donc comment devons-nous nous y prendre ?

10
COURANT ALTERNATIF EN COURANT
CONTINU (AC/DC)
Solution 1 Solution 2
Chercher une source de courant continu dans le Disposer d’un adaptateur de courant alternatif
secteur? vers courant continu?
 Cela est faisable mais imaginons que nous  Donc on n’aura pas à se déplacer juste pour
soyons dans une zone où l’accès à celui-ci est charger notre appareil ou l’alimenter pour
contraint. Nous serons obligés de faire des l’utiliser. En effet celui-ci (l’adaptateur) nous
déplacements pas possibles pour résoudre ce permettra de convertir le courant alternatif en
problème. courant continu.

11
COURANT ALTERNATIF EN COURANT
CONTINU (AC/DC)
Et comment s’y prendre?
Pour cela nous allons nous mettre dans le contexte du génie logiciel et répondre à ce problème
en faisant l’implémentation par des classes et des interfaces.
Mais en vrai il y’a deux principales approches d’implémentation à savoir l’implémentation :
• Par l’adaptateur de classe
• Par l’adaptateur d’objet

Donc nous allons définir brièvement ces deux types d’approche.

12
ADAPTATEUR DE
CLASSE

Consiste à faire hériter la classe de


l’Adaptateur de la classe Adapté
pour qu’au moment de
l’implémentation des requêtes de
l’interface Cible il puisse utiliser la
notion de l’héritage pour faire appel
aux requêtes spécifiques.
Mais son implémentation devient
problématique lorsqu’on doit
adapter plusieurs classes.

13
ADAPTATEUR
D’OBJET

Consiste à faire composer


l’Adaptateur par une instance de
l’Adapté pour pouvoir utiliser les
requêtes spécifiques lors de
l’implémentation de l’interface
Cible.

14
COMPARAISON ADAPTATEUR DE CLASSE
ET D’OBJET
Adaptateur d’objet Adaptateur de classe

 Plus flexible  Moins flexible


 Facile à implémenter  Difficile à implémenter
 Est composé de la classe à adapter  Hérite de la classe à adapter
 Plusieurs classes peuvent être adaptées  Une seule classe à adapter car impossible
d’hériter de plusieurs

15
IMPLÉMENTATION (ADAPTATEUR
D’OBJET)
Pour l’implémentation de notre solution concernant l’adaptateur de courant alternatif en courant
continu, nous allons choisir l’approche d’implémentation par l’adaptateur d’objet.
Avant toute chose nous présenterons d’abord le diagramme de classe de la solution.

16
DIAGRAMME DE
CLASSE DE LA
SOLUTION

Comme présenter ci-dessus, la classe


Appareil et Client représente le
client.
L’interface ICourantContinu
l’interface cible.
La classe Adaptateur est
l’adaptateur.
La classe CourantAlternatif la
classe adaptée.

17
IMPLÉMENTATION
DE LA CLASSE
ADAPTÉE

Cette classe représente le courant


alternatif et comporte deux
principales méthodes à savoir
alimenterCA() qui permet de
connaître le voltage du courant
alternatif et intensifierCA() son
intensité

NB : Ceci est donné comme


exemple et peut ne pas être les vraies
méthodes à utiliser (valable pour les
autres exemples).

18
IMPLÉMENTATION
DE L’INTERFACE
CIBLE

Cette interface représente le courant


continu qui doit être implémentée.

19
IMPLÉMENTATION
DE LA CLASSE
ADAPTATRICE

Cette classe représente l’adaptateur


AC/DC.
Pour implémenter l’interface cible
qu’est ICourantContinu, il utilise
les méthodes de l’objet
courantAlternatif de la classe
CourantAlternatif qui le compose.

20
IMPLÉMENTATION
DE LA CLASSE
APPAREIL

Cette classe représente l’appareil qui


doit utiliser le courant continu pour
son fonctionnement.

21
IMPLÉMENTATION
DE LA CLASSE
CLIENT

Cette classe représente le client qui


comporte la méthode main pour le
test de notre solution.
On voit que la méthode testCourant
a besoin d’un objet de type courant
continu pour pouvoir fonctionner.
Or on a utilisé l’adaptateur à cet
effet qui, lors de l’appel des
méthodes du courant continu fera
appel à celles du courant alternatif.

22
RÉSULTAT DU TEST

Ce test nous confirme que lors de


l’appel des méthodes du courant
continu ceux sont belles et bien
celles du courant alternatif qui nous
réponde.
On conclut qu’on a adapté le courant
alternatif en courant continu.

24
IV
AVANTAGES ET
INCONVÉNIENTS
AVANTAGES ET
INCONVÉNIENTS
Avantages Inconvénients

1 Réutilisabilité 1 Complexité accrue

2 Flexibilité 2 Performance réduite

3 Séparation des préoccupations 3 Risque de surutilisation

4 Compatibilité

26
V CONCLUSION
CONCLUSION
En résumé, le patron de conception adaptateur est une technique très efficace pour adapter une
interface existante à une nouvelle interface sans modifier le code source de l’une ou de l’autre. Il
permet de réutiliser du code existant et faciliter l’intégration de bibliothèques tierces dans une
application.

28
BIBLIOGRAPHIE
 Freeman, E., Freeman, E., Bates, B., & Sierra, K. (2004). Tête la première Design Pattern
(M.-C. Baland, trad.). Paris : Éditions O'Reilly.

29
MERCI !
Des questions? Fin

Vous aimerez peut-être aussi