Design patterns - adapter pattern
-
Upload
sidaouifahmi -
Category
Education
-
view
108 -
download
1
Transcript of Design patterns - adapter pattern
![Page 1: Design patterns - adapter pattern](https://reader030.fdocuments.us/reader030/viewer/2022032620/55cdd331bb61ebf7038b4886/html5/thumbnails/1.jpg)
Adapter PatternDesign Patterns
![Page 3: Design patterns - adapter pattern](https://reader030.fdocuments.us/reader030/viewer/2022032620/55cdd331bb61ebf7038b4886/html5/thumbnails/3.jpg)
Adaptateur est un patron de conception 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.
Introduction
![Page 4: Design patterns - adapter pattern](https://reader030.fdocuments.us/reader030/viewer/2022032620/55cdd331bb61ebf7038b4886/html5/thumbnails/4.jpg)
Diagramme de classes
![Page 5: Design patterns - adapter pattern](https://reader030.fdocuments.us/reader030/viewer/2022032620/55cdd331bb61ebf7038b4886/html5/thumbnails/5.jpg)
Diagramme de classes
![Page 6: Design patterns - adapter pattern](https://reader030.fdocuments.us/reader030/viewer/2022032620/55cdd331bb61ebf7038b4886/html5/thumbnails/6.jpg)
Le système doit intégrer un sous-système existant.
Ce sous-système a une interface non standard par rapport au système.
Cela peut être le cas d'un driver bas niveau pour de l'informatique embarquée.
Le driver fournit par le fabricant ne correspond pas à l'interface utilisée par le système pour d'autres drivers.
Raison d’utilisation
![Page 7: Design patterns - adapter pattern](https://reader030.fdocuments.us/reader030/viewer/2022032620/55cdd331bb61ebf7038b4886/html5/thumbnails/7.jpg)
La solution est de masquer cette interface non standard au système et de lui présenter une interface standard.
La partie cliente utilise les méthodes de l'Adaptateur qui utilise les méthodes du sous-système pour réaliser les opérations correspondantes.
Raison d’utilisation
![Page 8: Design patterns - adapter pattern](https://reader030.fdocuments.us/reader030/viewer/2022032620/55cdd331bb61ebf7038b4886/html5/thumbnails/8.jpg)
Standard : définit une interface qui est identifiée comme standard dans la partie cliente.
ImplStandard : implémente l'interface Standard. Cette classe n'a pas besoin d'être adaptée.
ImplAdaptee : permet de réaliser les fonctionnalités définies dans l'interface Standard, mais ne la respecte pas. Cette classe a besoin d'être adaptée.
Responsabilités
![Page 9: Design patterns - adapter pattern](https://reader030.fdocuments.us/reader030/viewer/2022032620/55cdd331bb61ebf7038b4886/html5/thumbnails/9.jpg)
Adaptateur : adapte l'implémentation ImplAdaptee à l'interface Standard. Pour réaliser l'adaptation, l'Adaptateur peut utiliser une ou plusieurs méthodes différentes de l'implémentation ImplAdaptee pour réaliser l'implémentation de chaque méthode de l'interface Standard.
La partie cliente : manipule des objets Standard. donc, l'adaptation est transparente pour la partie cliente.
Responsabilités
![Page 10: Design patterns - adapter pattern](https://reader030.fdocuments.us/reader030/viewer/2022032620/55cdd331bb61ebf7038b4886/html5/thumbnails/10.jpg)
/*StandardImp1*/
Implémentation
![Page 11: Design patterns - adapter pattern](https://reader030.fdocuments.us/reader030/viewer/2022032620/55cdd331bb61ebf7038b4886/html5/thumbnails/11.jpg)
/* ImplAdaptee*/
Implémentation
![Page 12: Design patterns - adapter pattern](https://reader030.fdocuments.us/reader030/viewer/2022032620/55cdd331bb61ebf7038b4886/html5/thumbnails/12.jpg)
/* Adapter */
Implémentation
![Page 13: Design patterns - adapter pattern](https://reader030.fdocuments.us/reader030/viewer/2022032620/55cdd331bb61ebf7038b4886/html5/thumbnails/13.jpg)
/* Adapter2 */
Implémentation
![Page 14: Design patterns - adapter pattern](https://reader030.fdocuments.us/reader030/viewer/2022032620/55cdd331bb61ebf7038b4886/html5/thumbnails/14.jpg)
/* Application */
Implémentation
![Page 15: Design patterns - adapter pattern](https://reader030.fdocuments.us/reader030/viewer/2022032620/55cdd331bb61ebf7038b4886/html5/thumbnails/15.jpg)
/* Standard */
/* Résultat */
Implémentation
![Page 16: Design patterns - adapter pattern](https://reader030.fdocuments.us/reader030/viewer/2022032620/55cdd331bb61ebf7038b4886/html5/thumbnails/16.jpg)
Merci pour votre attention