Vous êtes sur la page 1sur 7

Adapter 

: est un modèle de conception structurel qui permet aux objets avec des interfaces
incompatibles de collaborer.

Imaginez que vous créez une application de surveillance boursière. L'application


télécharge les données boursières à partir de plusieurs sources au format XML, puis affiche de jolis
graphiques et diagrammes pour l'utilisateur.

À un moment donné, vous décidez d'améliorer l'application en intégrant une bibliothèque d'analyse
tierce intelligente. Mais il y a un hic : la bibliothèque d'analyse ne fonctionne qu'avec des données au
format JSON

Vous pouvez modifier la bibliothèque pour travailler avec XML. Cependant, cela peut casser du code
existant qui repose sur la bibliothèque. Et pire, vous pourriez ne pas avoir accès au code source de la
bibliothèque en premier lieu, rendant cette approche impossible

Solution :
Vous pouvez créer un adaptateur. Il s'agit d'un objet spécial qui convertit l'interface d'un objet afin
qu'un autre objet puisse le comprendre.

Un adaptateur enveloppe l'un des objets pour masquer la complexité de la conversion qui se déroule
en coulisses. L'objet enveloppé n'est même pas conscient de l'adaptateur. Par exemple, vous pouvez
envelopper un objet qui fonctionne en mètres et en kilomètres avec un adaptateur qui convertit
toutes les données en unités anglo-saxonnes telles que les pieds et les miles.

Les adaptateurs peuvent non seulement convertir des données dans différents formats, mais peuvent
également aider des objets avec différentes interfaces à collaborer. Voici comment cela fonctionne:
L'adaptateur obtient une interface, compatible avec l'un des objets existants.

À l'aide de cette interface, l'objet existant peut appeler en toute sécurité les méthodes de
l'adaptateur.

Lors de la réception d'un appel, l'adaptateur transmet la demande au second objet, mais dans un
format et un ordre attendus par le second objet.

Parfois, il est même possible de créer un adaptateur bidirectionnel capable de convertir les appels
dans les deux sens

vous pouvez créer des adaptateurs XML vers JSON pour chaque classe de la bibliothèque d'analyse
avec laquelle votre code fonctionne directement. Ensuite, vous ajustez votre code pour communiquer
avec la bibliothèque uniquement via ces adaptateurs. Lorsqu'un adaptateur reçoit un appel, il traduit
les données XML entrantes en une structure JSON et transmet l'appel aux méthodes appropriées
d'un objet analytique encapsulé.

Code :
Bridge :
Bridge est un modèle de conception structurel qui vous
permet de diviser une grande classe ou un ensemble de
classes étroitement liées en deux hiérarchies distinctes
(abstraction et implémentation) qui peuvent être
développées indépendamment l'une de l'autre.

Supposons que vous ayez une classe Shape


géométrique avec une paire de sous-classes : Circle et
Square. Vous souhaitez étendre cette hiérarchie de
classes pour incorporer des couleurs, vous envisagez
donc de créer des sous-classes de formes Rouge et
Bleu. Cependant, puisque vous avez déjà deux sous-
classes, vous devrez créer quatre combinaisons de
classes telles que BlueCircle et RedSquare
Ce problème survient parce que nous essayons
d'étendre les classes de formes en deux dimensions
indépendantes : par la forme et par la couleur. C'est un
problème très courant avec l'héritage de classe.

Le pattern Bridge tente de résoudre ce problème en


passant de l'héritage à la composition d'objet. Cela
signifie que vous extrayez l'une des dimensions dans
une hiérarchie de classes distincte, de sorte que les
classes d'origine référenceront un objet de la nouvelle
hiérarchie, au lieu d'avoir tous ses états et
comportements dans une seule classe.

En suivant cette approche, nous pouvons extraire le


code lié à la couleur dans sa propre classe avec deux
sous-classes : Rouge et Bleu. La classe Shape obtient
alors un champ de référence pointant vers l'un des
objets de couleur. Désormais, la forme peut déléguer
tout travail lié à la couleur à l'objet de couleur lié. Cette
référence agira comme un pont entre les classes Shape
et Color. Désormais, l'ajout de nouvelles couleurs ne
nécessitera pas de modifier la hiérarchie des formes, et
vice versa.
Composite
est un modèle de conception structurelle qui vous
permet de composer des objets dans des structures
arborescentes, puis de travailler avec ces structures
comme s'il s'agissait d'objets individuels

ou par exemple, imaginez que vous avez deux


types d'objets : Produits et Boîtes. Une Box peut
contenir plusieurs Produits ainsi qu'un certain nombre
de Box plus petites. Ces petites Boîtes peuvent
également contenir des Produits ou même des Boîtes
plus petites, et ainsi de suite.

Vous aimerez peut-être aussi