Cours design pattern m youssfi partie 5 adapter

3 913 vues

Publié le

Design Pattern Adapter

Publié dans : Logiciels
0 commentaire
5 j’aime
Statistiques
Remarques
  • Soyez le premier à commenter

Aucun téléchargement
Vues
Nombre de vues
3 913
Sur SlideShare
0
Issues des intégrations
0
Intégrations
311
Actions
Partages
0
Téléchargements
704
Commentaires
0
J’aime
5
Intégrations 0
Aucune incorporation

Aucune remarque pour cette diapositive

Cours design pattern m youssfi partie 5 adapter

  1. 1. DDeessiiggnn PPaatttteerrnnss PPaarrtt 55 Mohamed Youssfi Laboratoire Signaux Systèmes Distribués et Intelligence Artificielle (SSDIA) ENSET, Université Hassan II Casablanca, Maroc Email : med@youssfi.net Supports de cours : http://fr.slideshare.net/mohamedyoussfi9 Chaîne vidéo : http://youtube.com/mohamedYoussfi Recherche : http://www.researchgate.net/profile/Youssfi_Mohamed/publications med@youssfi.net
  2. 2. PPaatttteerrnn AAddaapptteerr
  3. 3. PPaatttteerrnn AAddaapptteerr Catégorie : ◦ Structure Objectif du pattern ◦ Convertir l'interface d'une classe dans une autre interface ccoommpprriissee ppaarr llaa ppaarrttiiee cclliieennttee.. ◦ Permettre à des classes de fonctionner ensemble, ce qui n'aurait pas été possible à cause de leurs interfaces incompatibles. Résultat : ◦ Le Design Pattern permet d'isoler l'adaptation d'un sous-système. med@youssfi.net
  4. 4. DDiiaaggrraammmmee ddee ccllaasssseess Pattern Adapter par héritage Pattern Adapter par Composition med@youssfi.net
  5. 5. RRaaiissoonn dd’’uuttiilliissaattiioonn 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. La solution est de masquer cette interface non stantard 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. med@youssfi.net
  6. 6. RReessppoonnssaabbiilliittééss 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 dd''êêttrree aaddaappttééee.. 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. med@youssfi.net
  7. 7. IImmpplléémmeennttaattiioonn /* Standard.java */ public interface Standard { public void operation(int nb1,int nb2); } /* ImplStandard.java */ public class ImplStandard implements Standard { @Override public void operation(int nb1, int nb2) { System.out.println(Standard, Résultat est :+nb1*nb2); med@youssfi.net } } /* ImplStandard.java */ public class ImplAdaptee { public int operation2(int nb1,int nb2){ return nb1*nb2; } public void operation3(int nb){ System.out.println(Adaptée, Résultat=+nb); } }
  8. 8. IImmpplléémmeennttaattiioonn public class AdaptateurHeritage extends ImplAdaptee implements Standard { @Override public void operation(int nb1, int nb2) { int nb=operation2(nb1, nb2); operation3(nb); } } /* AdaptateurHeritage.java */ public class AdaptateurComposition implements Standard { private ImplAdaptee adaptee=new ImplAdaptee(); @Override public void operation(int nb1, int nb2) { med@youssfi.net int nb=adaptee.operation2(nb1, nb2); adaptee.operation3(nb); } } /* AdaptateurComposition.java */
  9. 9. IImmpplléémmeennttaattiioonn /* Application.java */ public class Application { public static void main(String[] args) { Standard standard=new ImplStandard(); standard.operation(7, 9); Standard adaptee1=new AdaptateurHeritage(); adaptee1.operation(7, 9); Standard adaptee2=new AdaptateurComposition(); adaptee2.operation(7, 9); } } med@youssfi.net Standard, Résultat est :63 Adaptée, Résultat=63 Adaptée, Résultat=63

×