SlideShare une entreprise Scribd logo
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
PPaatttteerrnn AAddaapptteerr
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
DDiiaaggrraammmmee ddee ccllaasssseess 
Pattern Adapter par héritage 
Pattern Adapter par Composition 
med@youssfi.net
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
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
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); 
} 
}
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 */
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

Contenu connexe

Tendances

Cours design pattern m youssfi partie 7 facade bridge flyweight
Cours design pattern m youssfi partie 7 facade bridge flyweightCours design pattern m youssfi partie 7 facade bridge flyweight
Cours design pattern m youssfi partie 7 facade bridge flyweight
ENSET, Université Hassan II Casablanca
 
Support POO Java première partie
Support POO Java première partieSupport POO Java première partie
Support POO Java première partie
ENSET, Université Hassan II Casablanca
 
Développement d'un site web jee de e commerce basé sur spring (m.youssfi)
Développement d'un site web jee de e commerce basé sur spring (m.youssfi)Développement d'un site web jee de e commerce basé sur spring (m.youssfi)
Développement d'un site web jee de e commerce basé sur spring (m.youssfi)
ENSET, Université Hassan II Casablanca
 
Architecture jee principe de inversion de controle et injection des dependances
Architecture jee principe de inversion de controle et injection des dependancesArchitecture jee principe de inversion de controle et injection des dependances
Architecture jee principe de inversion de controle et injection des dependances
ENSET, Université Hassan II Casablanca
 
Support JEE Servlet Jsp MVC M.Youssfi
Support JEE Servlet Jsp MVC M.YoussfiSupport JEE Servlet Jsp MVC M.Youssfi
Support JEE Servlet Jsp MVC M.Youssfi
ENSET, Université Hassan II Casablanca
 
Cours design pattern m youssfi partie 6 proxy
Cours design pattern m youssfi partie 6 proxyCours design pattern m youssfi partie 6 proxy
Cours design pattern m youssfi partie 6 proxy
ENSET, Université Hassan II Casablanca
 
Cours design pattern m youssfi partie 2 observer
Cours design pattern m youssfi partie 2 observerCours design pattern m youssfi partie 2 observer
Cours design pattern m youssfi partie 2 observer
ENSET, Université Hassan II Casablanca
 
Java entreprise edition et industrialisation du génie logiciel par m.youssfi
Java entreprise edition et industrialisation du génie logiciel par m.youssfiJava entreprise edition et industrialisation du génie logiciel par m.youssfi
Java entreprise edition et industrialisation du génie logiciel par m.youssfi
ENSET, Université Hassan II Casablanca
 
Support de cours entrepise java beans ejb m.youssfi
Support de cours entrepise java beans ejb m.youssfiSupport de cours entrepise java beans ejb m.youssfi
Support de cours entrepise java beans ejb m.youssfi
ENSET, Université Hassan II Casablanca
 
Site JEE de ECommerce Basé sur Spring IOC MVC Security JPA Hibernate
Site JEE de ECommerce  Basé sur Spring IOC MVC Security JPA HibernateSite JEE de ECommerce  Basé sur Spring IOC MVC Security JPA Hibernate
Site JEE de ECommerce Basé sur Spring IOC MVC Security JPA Hibernate
ENSET, Université Hassan II Casablanca
 
Mohamed youssfi support architectures logicielles distribuées basées sue les ...
Mohamed youssfi support architectures logicielles distribuées basées sue les ...Mohamed youssfi support architectures logicielles distribuées basées sue les ...
Mohamed youssfi support architectures logicielles distribuées basées sue les ...
ENSET, Université Hassan II Casablanca
 
Support programmation orientée aspect mohamed youssfi (aop)
Support programmation orientée aspect mohamed youssfi (aop)Support programmation orientée aspect mohamed youssfi (aop)
Support programmation orientée aspect mohamed youssfi (aop)
ENSET, Université Hassan II Casablanca
 
Correction Examen 2016-2017 POO .pdf
Correction Examen 2016-2017 POO .pdfCorrection Examen 2016-2017 POO .pdf
Correction Examen 2016-2017 POO .pdf
slimyaich3
 
Support developpement applications mobiles avec ionic v3 et v4
Support developpement applications mobiles avec ionic v3 et v4Support developpement applications mobiles avec ionic v3 et v4
Support developpement applications mobiles avec ionic v3 et v4
ENSET, Université Hassan II Casablanca
 
Support programmation orientée objet c# .net version f8
Support programmation orientée objet c#  .net version f8Support programmation orientée objet c#  .net version f8
Support programmation orientée objet c# .net version f8
ENSET, Université Hassan II Casablanca
 
Support NodeJS avec TypeScript Express MongoDB
Support NodeJS avec TypeScript Express MongoDBSupport NodeJS avec TypeScript Express MongoDB
Support NodeJS avec TypeScript Express MongoDB
ENSET, Université Hassan II Casablanca
 
Support de cours technologie et application m.youssfi
Support de cours technologie et application m.youssfiSupport de cours technologie et application m.youssfi
Support de cours technologie et application m.youssfi
ENSET, Université Hassan II Casablanca
 
Theses Soutenues sous Direction et Co-Direction du Pr YOUSSFI
Theses Soutenues sous Direction et Co-Direction du Pr YOUSSFITheses Soutenues sous Direction et Co-Direction du Pr YOUSSFI
Theses Soutenues sous Direction et Co-Direction du Pr YOUSSFI
ENSET, Université Hassan II Casablanca
 
Support de cours Spring M.youssfi
Support de cours Spring  M.youssfiSupport de cours Spring  M.youssfi
Support de cours Spring M.youssfi
ENSET, Université Hassan II Casablanca
 
Support de cours EJB 3 version complète Par Mr Youssfi, ENSET, Université Ha...
Support de cours EJB 3 version complète Par Mr  Youssfi, ENSET, Université Ha...Support de cours EJB 3 version complète Par Mr  Youssfi, ENSET, Université Ha...
Support de cours EJB 3 version complète Par Mr Youssfi, ENSET, Université Ha...
ENSET, Université Hassan II Casablanca
 

Tendances (20)

Cours design pattern m youssfi partie 7 facade bridge flyweight
Cours design pattern m youssfi partie 7 facade bridge flyweightCours design pattern m youssfi partie 7 facade bridge flyweight
Cours design pattern m youssfi partie 7 facade bridge flyweight
 
Support POO Java première partie
Support POO Java première partieSupport POO Java première partie
Support POO Java première partie
 
Développement d'un site web jee de e commerce basé sur spring (m.youssfi)
Développement d'un site web jee de e commerce basé sur spring (m.youssfi)Développement d'un site web jee de e commerce basé sur spring (m.youssfi)
Développement d'un site web jee de e commerce basé sur spring (m.youssfi)
 
Architecture jee principe de inversion de controle et injection des dependances
Architecture jee principe de inversion de controle et injection des dependancesArchitecture jee principe de inversion de controle et injection des dependances
Architecture jee principe de inversion de controle et injection des dependances
 
Support JEE Servlet Jsp MVC M.Youssfi
Support JEE Servlet Jsp MVC M.YoussfiSupport JEE Servlet Jsp MVC M.Youssfi
Support JEE Servlet Jsp MVC M.Youssfi
 
Cours design pattern m youssfi partie 6 proxy
Cours design pattern m youssfi partie 6 proxyCours design pattern m youssfi partie 6 proxy
Cours design pattern m youssfi partie 6 proxy
 
Cours design pattern m youssfi partie 2 observer
Cours design pattern m youssfi partie 2 observerCours design pattern m youssfi partie 2 observer
Cours design pattern m youssfi partie 2 observer
 
Java entreprise edition et industrialisation du génie logiciel par m.youssfi
Java entreprise edition et industrialisation du génie logiciel par m.youssfiJava entreprise edition et industrialisation du génie logiciel par m.youssfi
Java entreprise edition et industrialisation du génie logiciel par m.youssfi
 
Support de cours entrepise java beans ejb m.youssfi
Support de cours entrepise java beans ejb m.youssfiSupport de cours entrepise java beans ejb m.youssfi
Support de cours entrepise java beans ejb m.youssfi
 
Site JEE de ECommerce Basé sur Spring IOC MVC Security JPA Hibernate
Site JEE de ECommerce  Basé sur Spring IOC MVC Security JPA HibernateSite JEE de ECommerce  Basé sur Spring IOC MVC Security JPA Hibernate
Site JEE de ECommerce Basé sur Spring IOC MVC Security JPA Hibernate
 
Mohamed youssfi support architectures logicielles distribuées basées sue les ...
Mohamed youssfi support architectures logicielles distribuées basées sue les ...Mohamed youssfi support architectures logicielles distribuées basées sue les ...
Mohamed youssfi support architectures logicielles distribuées basées sue les ...
 
Support programmation orientée aspect mohamed youssfi (aop)
Support programmation orientée aspect mohamed youssfi (aop)Support programmation orientée aspect mohamed youssfi (aop)
Support programmation orientée aspect mohamed youssfi (aop)
 
Correction Examen 2016-2017 POO .pdf
Correction Examen 2016-2017 POO .pdfCorrection Examen 2016-2017 POO .pdf
Correction Examen 2016-2017 POO .pdf
 
Support developpement applications mobiles avec ionic v3 et v4
Support developpement applications mobiles avec ionic v3 et v4Support developpement applications mobiles avec ionic v3 et v4
Support developpement applications mobiles avec ionic v3 et v4
 
Support programmation orientée objet c# .net version f8
Support programmation orientée objet c#  .net version f8Support programmation orientée objet c#  .net version f8
Support programmation orientée objet c# .net version f8
 
Support NodeJS avec TypeScript Express MongoDB
Support NodeJS avec TypeScript Express MongoDBSupport NodeJS avec TypeScript Express MongoDB
Support NodeJS avec TypeScript Express MongoDB
 
Support de cours technologie et application m.youssfi
Support de cours technologie et application m.youssfiSupport de cours technologie et application m.youssfi
Support de cours technologie et application m.youssfi
 
Theses Soutenues sous Direction et Co-Direction du Pr YOUSSFI
Theses Soutenues sous Direction et Co-Direction du Pr YOUSSFITheses Soutenues sous Direction et Co-Direction du Pr YOUSSFI
Theses Soutenues sous Direction et Co-Direction du Pr YOUSSFI
 
Support de cours Spring M.youssfi
Support de cours Spring  M.youssfiSupport de cours Spring  M.youssfi
Support de cours Spring M.youssfi
 
Support de cours EJB 3 version complète Par Mr Youssfi, ENSET, Université Ha...
Support de cours EJB 3 version complète Par Mr  Youssfi, ENSET, Université Ha...Support de cours EJB 3 version complète Par Mr  Youssfi, ENSET, Université Ha...
Support de cours EJB 3 version complète Par Mr Youssfi, ENSET, Université Ha...
 

Similaire à Cours design pattern m youssfi partie 5 adapter

Cours spring
Cours springCours spring
Cours spring
mohamed el haddad
 
4 asynch task_services_thread
4 asynch task_services_thread4 asynch task_services_thread
4 asynch task_services_thread
Saber LAJILI
 
Correction examen-java-avancé-1
Correction examen-java-avancé-1Correction examen-java-avancé-1
Correction examen-java-avancé-1
vangogue
 
Abstract factory+adapter
Abstract factory+adapterAbstract factory+adapter
Abstract factory+adapter
Kamel Eddine Heragmi
 
TUTORIEL-CREATION-ACTIVITE CISCO PA.pdf
TUTORIEL-CREATION-ACTIVITE  CISCO PA.pdfTUTORIEL-CREATION-ACTIVITE  CISCO PA.pdf
TUTORIEL-CREATION-ACTIVITE CISCO PA.pdf
kedegaston39
 
DEVASC_Module_7 - Infrastructure & automatisation.pptx
DEVASC_Module_7 - Infrastructure & automatisation.pptxDEVASC_Module_7 - Infrastructure & automatisation.pptx
DEVASC_Module_7 - Infrastructure & automatisation.pptx
TasnimBenAmmar
 
Qualité logicielle
Qualité logicielleQualité logicielle
Qualité logiciellecyrilgandon
 
01_Introduction_a_JEE.pdf
01_Introduction_a_JEE.pdf01_Introduction_a_JEE.pdf
01_Introduction_a_JEE.pdf
Junior724645
 
Etude des Frameworks PHP
Etude des Frameworks PHPEtude des Frameworks PHP
Etude des Frameworks PHP
JEAN-GUILLAUME DUJARDIN
 
Serveur node red
Serveur node redServeur node red
Serveur node red
FerchichiYassine
 
SQL_Python.pdf
SQL_Python.pdfSQL_Python.pdf
SQL_Python.pdf
RouaissiRidha
 
Introduction module IHM Polytech Sophia Dept Info SI3
Introduction module IHM Polytech Sophia Dept Info SI3Introduction module IHM Polytech Sophia Dept Info SI3
Introduction module IHM Polytech Sophia Dept Info SI3
Anne-Marie Pinna-Dery
 
Utiliser le Zend Framework avec Symfony
Utiliser le Zend Framework avec SymfonyUtiliser le Zend Framework avec Symfony
Utiliser le Zend Framework avec SymfonyXavier Gorse
 
Design applicatif avec symfony2
Design applicatif avec symfony2Design applicatif avec symfony2
Design applicatif avec symfony2
RomainKuzniak
 
Retour d'expérience sur PowerShell
Retour d'expérience sur PowerShellRetour d'expérience sur PowerShell
Retour d'expérience sur PowerShell
Microsoft Technet France
 
Java 9 modulo les modules devoxx fr 2017
Java 9 modulo les modules devoxx fr 2017Java 9 modulo les modules devoxx fr 2017
Java 9 modulo les modules devoxx fr 2017
Jean-Michel Doudoux
 
Intro ihm
Intro ihmIntro ihm
Design Patterns Java
Design Patterns JavaDesign Patterns Java
Design Patterns Java
VINOT Bernard
 
Traits : de la théorie à la pratique
Traits : de la théorie à la pratiqueTraits : de la théorie à la pratique
Traits : de la théorie à la pratiqueFrederic Hardy
 
Architecture PHP 3 tier avec Zend en backend de Drupal
Architecture PHP 3 tier avec Zend en backend de DrupalArchitecture PHP 3 tier avec Zend en backend de Drupal
Architecture PHP 3 tier avec Zend en backend de Drupal
Thomas Delerm
 

Similaire à Cours design pattern m youssfi partie 5 adapter (20)

Cours spring
Cours springCours spring
Cours spring
 
4 asynch task_services_thread
4 asynch task_services_thread4 asynch task_services_thread
4 asynch task_services_thread
 
Correction examen-java-avancé-1
Correction examen-java-avancé-1Correction examen-java-avancé-1
Correction examen-java-avancé-1
 
Abstract factory+adapter
Abstract factory+adapterAbstract factory+adapter
Abstract factory+adapter
 
TUTORIEL-CREATION-ACTIVITE CISCO PA.pdf
TUTORIEL-CREATION-ACTIVITE  CISCO PA.pdfTUTORIEL-CREATION-ACTIVITE  CISCO PA.pdf
TUTORIEL-CREATION-ACTIVITE CISCO PA.pdf
 
DEVASC_Module_7 - Infrastructure & automatisation.pptx
DEVASC_Module_7 - Infrastructure & automatisation.pptxDEVASC_Module_7 - Infrastructure & automatisation.pptx
DEVASC_Module_7 - Infrastructure & automatisation.pptx
 
Qualité logicielle
Qualité logicielleQualité logicielle
Qualité logicielle
 
01_Introduction_a_JEE.pdf
01_Introduction_a_JEE.pdf01_Introduction_a_JEE.pdf
01_Introduction_a_JEE.pdf
 
Etude des Frameworks PHP
Etude des Frameworks PHPEtude des Frameworks PHP
Etude des Frameworks PHP
 
Serveur node red
Serveur node redServeur node red
Serveur node red
 
SQL_Python.pdf
SQL_Python.pdfSQL_Python.pdf
SQL_Python.pdf
 
Introduction module IHM Polytech Sophia Dept Info SI3
Introduction module IHM Polytech Sophia Dept Info SI3Introduction module IHM Polytech Sophia Dept Info SI3
Introduction module IHM Polytech Sophia Dept Info SI3
 
Utiliser le Zend Framework avec Symfony
Utiliser le Zend Framework avec SymfonyUtiliser le Zend Framework avec Symfony
Utiliser le Zend Framework avec Symfony
 
Design applicatif avec symfony2
Design applicatif avec symfony2Design applicatif avec symfony2
Design applicatif avec symfony2
 
Retour d'expérience sur PowerShell
Retour d'expérience sur PowerShellRetour d'expérience sur PowerShell
Retour d'expérience sur PowerShell
 
Java 9 modulo les modules devoxx fr 2017
Java 9 modulo les modules devoxx fr 2017Java 9 modulo les modules devoxx fr 2017
Java 9 modulo les modules devoxx fr 2017
 
Intro ihm
Intro ihmIntro ihm
Intro ihm
 
Design Patterns Java
Design Patterns JavaDesign Patterns Java
Design Patterns Java
 
Traits : de la théorie à la pratique
Traits : de la théorie à la pratiqueTraits : de la théorie à la pratique
Traits : de la théorie à la pratique
 
Architecture PHP 3 tier avec Zend en backend de Drupal
Architecture PHP 3 tier avec Zend en backend de DrupalArchitecture PHP 3 tier avec Zend en backend de Drupal
Architecture PHP 3 tier avec Zend en backend de Drupal
 

Plus de ENSET, Université Hassan II Casablanca

Traitement distribue en BIg Data - KAFKA Broker and Kafka Streams
Traitement distribue en BIg Data - KAFKA Broker and Kafka StreamsTraitement distribue en BIg Data - KAFKA Broker and Kafka Streams
Traitement distribue en BIg Data - KAFKA Broker and Kafka Streams
ENSET, Université Hassan II Casablanca
 
Mise en oeuvre des Frameworks de Machines et Deep Learning pour les Applicati...
Mise en oeuvre des Frameworks de Machines et Deep Learning pour les Applicati...Mise en oeuvre des Frameworks de Machines et Deep Learning pour les Applicati...
Mise en oeuvre des Frameworks de Machines et Deep Learning pour les Applicati...
ENSET, Université Hassan II Casablanca
 
Support distributed computing and caching avec hazelcast
Support distributed computing and caching avec hazelcastSupport distributed computing and caching avec hazelcast
Support distributed computing and caching avec hazelcast
ENSET, Université Hassan II Casablanca
 
Mise en oeuvre des framework de machines et deep learning v1
Mise en oeuvre des framework de machines et deep learning v1 Mise en oeuvre des framework de machines et deep learning v1
Mise en oeuvre des framework de machines et deep learning v1
ENSET, Université Hassan II Casablanca
 
Conférence: Catalyseurs de l'Intelligence Artificielle et Écosystème des Fram...
Conférence: Catalyseurs de l'Intelligence Artificielle et Écosystème des Fram...Conférence: Catalyseurs de l'Intelligence Artificielle et Écosystème des Fram...
Conférence: Catalyseurs de l'Intelligence Artificielle et Écosystème des Fram...
ENSET, Université Hassan II Casablanca
 
Sécurité des Applications Web avec Json Web Token (JWT)
Sécurité des Applications Web avec Json Web Token (JWT)Sécurité des Applications Web avec Json Web Token (JWT)
Sécurité des Applications Web avec Json Web Token (JWT)
ENSET, Université Hassan II Casablanca
 
Support de cours angular
Support de cours angularSupport de cours angular
Support de cours angular
ENSET, Université Hassan II Casablanca
 
Maven et industrialisation du logiciel
Maven et industrialisation du logicielMaven et industrialisation du logiciel
Maven et industrialisation du logiciel
ENSET, Université Hassan II Casablanca
 
Systèmes multi agents concepts et mise en oeuvre avec le middleware jade
Systèmes multi agents concepts et mise en oeuvre avec le middleware jadeSystèmes multi agents concepts et mise en oeuvre avec le middleware jade
Systèmes multi agents concepts et mise en oeuvre avec le middleware jade
ENSET, Université Hassan II Casablanca
 
Support de Cours JSF2 Première partie Intégration avec Spring
Support de Cours JSF2 Première partie Intégration avec SpringSupport de Cours JSF2 Première partie Intégration avec Spring
Support de Cours JSF2 Première partie Intégration avec Spring
ENSET, Université Hassan II Casablanca
 

Plus de ENSET, Université Hassan II Casablanca (10)

Traitement distribue en BIg Data - KAFKA Broker and Kafka Streams
Traitement distribue en BIg Data - KAFKA Broker and Kafka StreamsTraitement distribue en BIg Data - KAFKA Broker and Kafka Streams
Traitement distribue en BIg Data - KAFKA Broker and Kafka Streams
 
Mise en oeuvre des Frameworks de Machines et Deep Learning pour les Applicati...
Mise en oeuvre des Frameworks de Machines et Deep Learning pour les Applicati...Mise en oeuvre des Frameworks de Machines et Deep Learning pour les Applicati...
Mise en oeuvre des Frameworks de Machines et Deep Learning pour les Applicati...
 
Support distributed computing and caching avec hazelcast
Support distributed computing and caching avec hazelcastSupport distributed computing and caching avec hazelcast
Support distributed computing and caching avec hazelcast
 
Mise en oeuvre des framework de machines et deep learning v1
Mise en oeuvre des framework de machines et deep learning v1 Mise en oeuvre des framework de machines et deep learning v1
Mise en oeuvre des framework de machines et deep learning v1
 
Conférence: Catalyseurs de l'Intelligence Artificielle et Écosystème des Fram...
Conférence: Catalyseurs de l'Intelligence Artificielle et Écosystème des Fram...Conférence: Catalyseurs de l'Intelligence Artificielle et Écosystème des Fram...
Conférence: Catalyseurs de l'Intelligence Artificielle et Écosystème des Fram...
 
Sécurité des Applications Web avec Json Web Token (JWT)
Sécurité des Applications Web avec Json Web Token (JWT)Sécurité des Applications Web avec Json Web Token (JWT)
Sécurité des Applications Web avec Json Web Token (JWT)
 
Support de cours angular
Support de cours angularSupport de cours angular
Support de cours angular
 
Maven et industrialisation du logiciel
Maven et industrialisation du logicielMaven et industrialisation du logiciel
Maven et industrialisation du logiciel
 
Systèmes multi agents concepts et mise en oeuvre avec le middleware jade
Systèmes multi agents concepts et mise en oeuvre avec le middleware jadeSystèmes multi agents concepts et mise en oeuvre avec le middleware jade
Systèmes multi agents concepts et mise en oeuvre avec le middleware jade
 
Support de Cours JSF2 Première partie Intégration avec Spring
Support de Cours JSF2 Première partie Intégration avec SpringSupport de Cours JSF2 Première partie Intégration avec Spring
Support de Cours JSF2 Première partie Intégration avec Spring
 

Cours design pattern m youssfi partie 5 adapter

  • 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
  • 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. DDiiaaggrraammmmee ddee ccllaasssseess Pattern Adapter par héritage Pattern Adapter par Composition med@youssfi.net
  • 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. 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. 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. 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. 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