SlideShare a Scribd company logo
1 of 17
Download to read offline
Centre Universitaire           De Souk-Ahras

                Institut : Sciences & Techniques
                     Département : Sciences

                    Design Pattern
             (Abstract Factory & Adapter)


                                             dériger:
Réalisé par :                           .Abdelkarim Amirate
                                        Dr
Heraguemi kamel eddine
Définition
  “Each pattern describes a problem which occurs over
   and over again in our environment, and then describes
   the core of the solution to that problem, in suh a way
   that you can use this solution a million times over,
   without ever doing it the same way twice”[Alexander,
   1977]
 Un patron de conception a 4 constituent :
• nom du patron: un mot/phrase que l’on utilise qui réfère une
famille de problèmes, une famille de solutions, et leur impact.
• problème: une description des problèmes typiques de conception
• solution: décrit les éléments constitutifs de la solution, leur
responsabilités, relations, et intéractions
• conséquences: impact et compromis résultant de l’application du
patron
                                                                    2
Types de patrons
   Créationnels:AbstractFactory,Singleton, Builder,…
 • Font l’abstracion du processus l’instanciasion afin de rendre un
système indépendant de la façon dont ses objets sont créés et
représentés;
   Structurels: Adapter, Bridge, Composite, Decorator,
    Façade,…
 • Se concentrent sur la façon dont les classes et les objets sont
composés pour obtenir de plus grandes structures

 Comportementaux: Iterator, Visitor, Observer, State,
    trategy, Mediator, …
• Décrivent les modèles de communicaton et interacton entre les
objets


                                                                      3
AbstractFactory   Adapter




                            4
Abstract Factory (1/7)
   Idée
    ◦ Fournir une interface pour créer des familles d’objets
      associés sans connaître leur classe réelle.
    ◦ La création d’objets regroupés en familles sans devoir
      connaître les classes concrètes destinées à la création
      de ces objets.
   Synonymes : Kit, Fabrique abstraite, Usine
    abstraite




                                                                5
Abstract Factory (2/7)
   Champs d’application
    ◦ Bibliothèque fournie avec seulement leurs interfaces,
      pas leurs implémentations
      (bibilothèque graphique, look-and-feel)
    ◦ Un système utilisant des produits a besoin d’être
      indépendant de la façon dont ces produits sont créés
      et regroupés ;
    ◦ Un système est paramétré par plusieurs familles de
      produits qui peuvent évoluer.




                                                              6
Abstract Factory (3/7)




                         7
Abstract Factory (4/7)
   Structure
    ◦ La fabrique
       AbstractFactory déclare l’interface pour les opérations qui
        créent des objets abstraits
       ConcreteFactory implémente les opérations qui crée les objets
        concrets
    ◦ Les objets (plusieurs types)
       AbstractProduct déclare une interface pour un type d’objet
       ConcreteProduct définit un objet qui doit être créé par la
        fabrique concrète correspondante et implémente l’interface
        AbstractProduct
    ◦ L’utilisateur
       Client utilise seulement les interfaces déclarée par
        AbstractFactory et par les classes AbstractProduct



                                                                        8
Abstract Factory (5/7)
   Collaborations
    ◦ Normalement, une seule instance de fabrique
      concrète est créée à l’exécution. Cette fabrique
      crée les objets avec une implémentation
      spécifique. Pour créer différents sortes
      d’objets, les clients doivent utiliser différentes
      fabriques concrètes.
    ◦ La fabrique abstraite défère la création des
      objets à ses sous-classes concrètes


                                                       9
Abstract Factory (6/7)
   Conséquences
    ◦ Isolation des classes concrètes (seules les
      classes abstraites/interface sont connues)
    ◦ Échange facile des familles de produit
    ◦ Encouragement de la cohérence entre les
      produits




                                                    10
Abstract Factory (7/7)
   Implémentation
    ◦ Les fabriques sont souvent des singletons
    ◦ Ce sont les sous-classes concrètes qui font la
      création, en utilisant le plus souvent une
      Factory Method
    ◦ Si plusieurs familles sont possibles, la
      fabrique concrète utilise Prototype




                                                       11
Patron de structure



Adapter (1/4)
   Idée
    ◦ Convertir l’interface d’une classe en une autre
      interface qui est attendue par un client.
    ◦ Permet de faire collaborer des classes qui n’auraient
      pas pu le faire à cause de l’incompatibilité de leurs
      interfaces
   Exemple
    ◦ Une classe de bibliothèque conçue pour la réutilisation
      ne peut pas l’être à cause d’une demande spécifique
      de l’application
    ◦ Les Adapter de java : MouseAdapter,
      WindowAdapter,etc.



                                                              12
Patron de structure



Adapter (2/4)
   Structure
    ◦ Une cible (Target) définit l’interface spécifique à
      l’application que le client utilise
    ◦ Le Client collabore avec les objets qui sont
      conformes à l’interface de Target
    ◦ La classe à adapter (Adaptee) est l’interface
      existante qui a besoin d’adaptation
    ◦ L’adaptateur (Adapter) adapte effectivement
      l’interface de Adaptee à l’interface de Target par
      traduction des accès (appels de méthode)


                                                            13
Adapter (2/4)




                14
Patron de structure



Adapter (3/4)
   Conséquences
    ◦ Pour la classe de l’objet qui adapte
      Pas possible d’adapter une classe et ses sous-classes
      Mais redéfinition possible du comportement (sous-
       classe)
    ◦ Pour l’objet qui adapte
      Un adapter peut travailler avec plusieurs Adaptees
      Plus difficile de redéfinir le comportement
       d’Adaptee (sous-classer puis obliger Adapter a
       référencer la sousclasse)



                                                               15
Patron de structure



Adapter (4/4)
   Implémentation
    ◦ Par héritage (multiple) de la classe à adapter,
      en y ajoutant les méthodes de l’interface cible
      et en assurant les appels corrects aux méthodes
      de la classe à adapter
    ◦ Par composition, selon le même principe (faire
      correspondre les appels de méthode) sauf que
      la classe à adapter est un champ de la classe
      qui adapte


                                                    16
   Exmple Crier en JAVA sur Eclipse




                                       17

More Related Content

What's hot

Design patterns - Exemples en Java
Design patterns - Exemples en JavaDesign patterns - Exemples en Java
Design patterns - Exemples en JavaOussama BEN KHIROUN
 
Design Patterns (2003)
Design Patterns (2003)Design Patterns (2003)
Design Patterns (2003)Pascal Roques
 
softCours design pattern m youssfi partie 9 creation des objets abstract fact...
softCours design pattern m youssfi partie 9 creation des objets abstract fact...softCours design pattern m youssfi partie 9 creation des objets abstract fact...
softCours design pattern m youssfi partie 9 creation des objets abstract fact...ENSET, Université Hassan II Casablanca
 
Cours design pattern m youssfi partie 1 introduction et pattern strategy
Cours design pattern m youssfi partie 1 introduction et pattern strategyCours design pattern m youssfi partie 1 introduction et pattern strategy
Cours design pattern m youssfi partie 1 introduction et pattern strategyENSET, Université Hassan II Casablanca
 
Cours design pattern m youssfi partie 8 stat, template method, command , medi...
Cours design pattern m youssfi partie 8 stat, template method, command , medi...Cours design pattern m youssfi partie 8 stat, template method, command , medi...
Cours design pattern m youssfi partie 8 stat, template method, command , medi...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.youssfiENSET, Université Hassan II Casablanca
 
Patrons de creation
Patrons de creationPatrons de creation
Patrons de creationomri med
 

What's hot (20)

Design patterns - Exemples en Java
Design patterns - Exemples en JavaDesign patterns - Exemples en Java
Design patterns - Exemples en Java
 
Design Patterns (2003)
Design Patterns (2003)Design Patterns (2003)
Design Patterns (2003)
 
softCours design pattern m youssfi partie 9 creation des objets abstract fact...
softCours design pattern m youssfi partie 9 creation des objets abstract fact...softCours design pattern m youssfi partie 9 creation des objets abstract fact...
softCours design pattern m youssfi partie 9 creation des objets abstract fact...
 
Cours design pattern m youssfi partie 1 introduction et pattern strategy
Cours design pattern m youssfi partie 1 introduction et pattern strategyCours design pattern m youssfi partie 1 introduction et pattern strategy
Cours design pattern m youssfi partie 1 introduction et pattern strategy
 
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 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
 
Cours design pattern m youssfi partie 8 stat, template method, command , medi...
Cours design pattern m youssfi partie 8 stat, template method, command , medi...Cours design pattern m youssfi partie 8 stat, template method, command , medi...
Cours design pattern m youssfi partie 8 stat, template method, command , medi...
 
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
 
Patron observer
Patron observerPatron observer
Patron observer
 
Cours design pattern m youssfi partie 3 decorateur
Cours design pattern m youssfi partie 3 decorateurCours design pattern m youssfi partie 3 decorateur
Cours design pattern m youssfi partie 3 decorateur
 
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 JEE Spring Inversion de Controle IOC et Spring MVC
Support JEE Spring Inversion de Controle IOC et Spring MVCSupport JEE Spring Inversion de Controle IOC et Spring MVC
Support JEE Spring Inversion de Controle IOC et Spring MVC
 
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
 
Patrons de conception
Patrons de conceptionPatrons de conception
Patrons de conception
 
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
 
Support POO Java Deuxième Partie
Support POO Java Deuxième PartieSupport POO Java Deuxième Partie
Support POO Java Deuxième Partie
 
Patrons de creation
Patrons de creationPatrons de creation
Patrons de creation
 
Maven et industrialisation du logiciel
Maven et industrialisation du logicielMaven et industrialisation du logiciel
Maven et industrialisation du logiciel
 
Support NodeJS avec TypeScript Express MongoDB
Support NodeJS avec TypeScript Express MongoDBSupport NodeJS avec TypeScript Express MongoDB
Support NodeJS avec TypeScript Express MongoDB
 

Similar to Abstract factory+adapter

Design patterns gof fr
Design patterns gof frDesign patterns gof fr
Design patterns gof frIt Academy
 
OOP & Design Pattern - Algiers Developers Meetup August 2015
OOP & Design Pattern - Algiers Developers Meetup August 2015OOP & Design Pattern - Algiers Developers Meetup August 2015
OOP & Design Pattern - Algiers Developers Meetup August 2015Tarik Zakaria Benmerar
 
DesignPatternsISI.pdf
DesignPatternsISI.pdfDesignPatternsISI.pdf
DesignPatternsISI.pdfandre543581
 
Module development Patterns de Création.pptx
Module development Patterns de Création.pptxModule development Patterns de Création.pptx
Module development Patterns de Création.pptxarapilatico
 
Cours php & Mysql - 4éme partie
Cours php & Mysql - 4éme partieCours php & Mysql - 4éme partie
Cours php & Mysql - 4éme partiekadzaki
 
Tour d’horizon de scala
Tour d’horizon de scalaTour d’horizon de scala
Tour d’horizon de scalaBenoit Wilcox
 
Formation JAVA/J2EE
Formation JAVA/J2EEFormation JAVA/J2EE
Formation JAVA/J2EEInes Ouaz
 
Introduction à Hibernate p.1
Introduction à Hibernate p.1Introduction à Hibernate p.1
Introduction à Hibernate p.1ATHMAN HAJ-HAMOU
 
DDD, CQRS et Event Sourcing : quand coder propre n'est plus suffisant
 DDD, CQRS et Event Sourcing : quand coder propre n'est plus suffisant DDD, CQRS et Event Sourcing : quand coder propre n'est plus suffisant
DDD, CQRS et Event Sourcing : quand coder propre n'est plus suffisantcluelessjoe
 
Presentation hibernate nfe103
Presentation hibernate nfe103Presentation hibernate nfe103
Presentation hibernate nfe103MRamo2s
 
La persistance des données : ORM et hibernate
La persistance des données : ORM et hibernateLa persistance des données : ORM et hibernate
La persistance des données : ORM et hibernateYouness Boukouchi
 
Cours partie1 elgarrai zineb
Cours partie1 elgarrai zinebCours partie1 elgarrai zineb
Cours partie1 elgarrai zinebZineb ELGARRAI
 
Qualité logicielle
Qualité logicielleQualité logicielle
Qualité logiciellecyrilgandon
 

Similar to Abstract factory+adapter (20)

Design patterns gof fr
Design patterns gof frDesign patterns gof fr
Design patterns gof fr
 
OOP and Design Patterns
OOP and Design PatternsOOP and Design Patterns
OOP and Design Patterns
 
OOP & Design Pattern - Algiers Developers Meetup August 2015
OOP & Design Pattern - Algiers Developers Meetup August 2015OOP & Design Pattern - Algiers Developers Meetup August 2015
OOP & Design Pattern - Algiers Developers Meetup August 2015
 
DesignPatternsISI.pdf
DesignPatternsISI.pdfDesignPatternsISI.pdf
DesignPatternsISI.pdf
 
Cours spring
Cours springCours spring
Cours spring
 
575
575575
575
 
Module development Patterns de Création.pptx
Module development Patterns de Création.pptxModule development Patterns de Création.pptx
Module development Patterns de Création.pptx
 
Cours php & Mysql - 4éme partie
Cours php & Mysql - 4éme partieCours php & Mysql - 4éme partie
Cours php & Mysql - 4éme partie
 
Tour d’horizon de scala
Tour d’horizon de scalaTour d’horizon de scala
Tour d’horizon de scala
 
Formation JAVA/J2EE
Formation JAVA/J2EEFormation JAVA/J2EE
Formation JAVA/J2EE
 
Introduction à Hibernate p.1
Introduction à Hibernate p.1Introduction à Hibernate p.1
Introduction à Hibernate p.1
 
DDD, CQRS et Event Sourcing : quand coder propre n'est plus suffisant
 DDD, CQRS et Event Sourcing : quand coder propre n'est plus suffisant DDD, CQRS et Event Sourcing : quand coder propre n'est plus suffisant
DDD, CQRS et Event Sourcing : quand coder propre n'est plus suffisant
 
Presentation hibernate nfe103
Presentation hibernate nfe103Presentation hibernate nfe103
Presentation hibernate nfe103
 
tp-spring.pdf
tp-spring.pdftp-spring.pdf
tp-spring.pdf
 
tp-spring.pdf
tp-spring.pdftp-spring.pdf
tp-spring.pdf
 
La persistance des données : ORM et hibernate
La persistance des données : ORM et hibernateLa persistance des données : ORM et hibernate
La persistance des données : ORM et hibernate
 
Cours partie1 elgarrai zineb
Cours partie1 elgarrai zinebCours partie1 elgarrai zineb
Cours partie1 elgarrai zineb
 
Design Patterns
Design PatternsDesign Patterns
Design Patterns
 
Etude des Frameworks PHP
Etude des Frameworks PHPEtude des Frameworks PHP
Etude des Frameworks PHP
 
Qualité logicielle
Qualité logicielleQualité logicielle
Qualité logicielle
 

More from Kamel Eddine Heragmi

More from Kamel Eddine Heragmi (6)

Objecteering
ObjecteeringObjecteering
Objecteering
 
Polymorphisme
PolymorphismePolymorphisme
Polymorphisme
 
diagramme de cas d'utilisation
diagramme de cas d'utilisationdiagramme de cas d'utilisation
diagramme de cas d'utilisation
 
Timing diagram
Timing diagramTiming diagram
Timing diagram
 
7 diagramme de cas d'utilisation
7 diagramme de cas d'utilisation7 diagramme de cas d'utilisation
7 diagramme de cas d'utilisation
 
Generateur de code java (GenJAVA)
Generateur de code java (GenJAVA)Generateur de code java (GenJAVA)
Generateur de code java (GenJAVA)
 

Recently uploaded

La Projection orthogonale en dessin technique
La Projection orthogonale en dessin techniqueLa Projection orthogonale en dessin technique
La Projection orthogonale en dessin techniquessuser4dbdf2
 
Exercice de FLE pour enfants sur les transports et les prépositions
Exercice de FLE pour enfants sur les transports et les prépositionsExercice de FLE pour enfants sur les transports et les prépositions
Exercice de FLE pour enfants sur les transports et les prépositionslaetitiachassagne
 
Formation M2i - Femmes entrepreneures : soyez actrices du changement
Formation M2i - Femmes entrepreneures : soyez actrices du changementFormation M2i - Femmes entrepreneures : soyez actrices du changement
Formation M2i - Femmes entrepreneures : soyez actrices du changementM2i Formation
 
Rapport projet de fin d'études licence PFE
Rapport projet de fin d'études licence PFERapport projet de fin d'études licence PFE
Rapport projet de fin d'études licence PFEAhmam Abderrahmane
 
Planning de la semaine du 25 mars au 2 avril 2024
Planning de la semaine du 25 mars au 2 avril 2024Planning de la semaine du 25 mars au 2 avril 2024
Planning de la semaine du 25 mars au 2 avril 2024frizzole
 
Semaine de la Passion de Jésus-Christ.pptx
Semaine de la Passion de Jésus-Christ.pptxSemaine de la Passion de Jésus-Christ.pptx
Semaine de la Passion de Jésus-Christ.pptxMartin M Flynn
 
Présentation de lancement de la SAE203 - MMI S2
Présentation de lancement de la SAE203 - MMI S2Présentation de lancement de la SAE203 - MMI S2
Présentation de lancement de la SAE203 - MMI S2JeanLucHusson
 

Recently uploaded (7)

La Projection orthogonale en dessin technique
La Projection orthogonale en dessin techniqueLa Projection orthogonale en dessin technique
La Projection orthogonale en dessin technique
 
Exercice de FLE pour enfants sur les transports et les prépositions
Exercice de FLE pour enfants sur les transports et les prépositionsExercice de FLE pour enfants sur les transports et les prépositions
Exercice de FLE pour enfants sur les transports et les prépositions
 
Formation M2i - Femmes entrepreneures : soyez actrices du changement
Formation M2i - Femmes entrepreneures : soyez actrices du changementFormation M2i - Femmes entrepreneures : soyez actrices du changement
Formation M2i - Femmes entrepreneures : soyez actrices du changement
 
Rapport projet de fin d'études licence PFE
Rapport projet de fin d'études licence PFERapport projet de fin d'études licence PFE
Rapport projet de fin d'études licence PFE
 
Planning de la semaine du 25 mars au 2 avril 2024
Planning de la semaine du 25 mars au 2 avril 2024Planning de la semaine du 25 mars au 2 avril 2024
Planning de la semaine du 25 mars au 2 avril 2024
 
Semaine de la Passion de Jésus-Christ.pptx
Semaine de la Passion de Jésus-Christ.pptxSemaine de la Passion de Jésus-Christ.pptx
Semaine de la Passion de Jésus-Christ.pptx
 
Présentation de lancement de la SAE203 - MMI S2
Présentation de lancement de la SAE203 - MMI S2Présentation de lancement de la SAE203 - MMI S2
Présentation de lancement de la SAE203 - MMI S2
 

Abstract factory+adapter

  • 1. Centre Universitaire De Souk-Ahras Institut : Sciences & Techniques Département : Sciences Design Pattern (Abstract Factory & Adapter) dériger: Réalisé par :  .Abdelkarim Amirate Dr Heraguemi kamel eddine
  • 2. Définition  “Each pattern describes a problem which occurs over and over again in our environment, and then describes the core of the solution to that problem, in suh a way that you can use this solution a million times over, without ever doing it the same way twice”[Alexander, 1977]  Un patron de conception a 4 constituent : • nom du patron: un mot/phrase que l’on utilise qui réfère une famille de problèmes, une famille de solutions, et leur impact. • problème: une description des problèmes typiques de conception • solution: décrit les éléments constitutifs de la solution, leur responsabilités, relations, et intéractions • conséquences: impact et compromis résultant de l’application du patron 2
  • 3. Types de patrons  Créationnels:AbstractFactory,Singleton, Builder,… • Font l’abstracion du processus l’instanciasion afin de rendre un système indépendant de la façon dont ses objets sont créés et représentés;  Structurels: Adapter, Bridge, Composite, Decorator, Façade,… • Se concentrent sur la façon dont les classes et les objets sont composés pour obtenir de plus grandes structures  Comportementaux: Iterator, Visitor, Observer, State, trategy, Mediator, … • Décrivent les modèles de communicaton et interacton entre les objets 3
  • 4. AbstractFactory Adapter 4
  • 5. Abstract Factory (1/7)  Idée ◦ Fournir une interface pour créer des familles d’objets associés sans connaître leur classe réelle. ◦ La création d’objets regroupés en familles sans devoir connaître les classes concrètes destinées à la création de ces objets.  Synonymes : Kit, Fabrique abstraite, Usine abstraite 5
  • 6. Abstract Factory (2/7)  Champs d’application ◦ Bibliothèque fournie avec seulement leurs interfaces, pas leurs implémentations (bibilothèque graphique, look-and-feel) ◦ Un système utilisant des produits a besoin d’être indépendant de la façon dont ces produits sont créés et regroupés ; ◦ Un système est paramétré par plusieurs familles de produits qui peuvent évoluer. 6
  • 8. Abstract Factory (4/7)  Structure ◦ La fabrique  AbstractFactory déclare l’interface pour les opérations qui créent des objets abstraits  ConcreteFactory implémente les opérations qui crée les objets concrets ◦ Les objets (plusieurs types)  AbstractProduct déclare une interface pour un type d’objet  ConcreteProduct définit un objet qui doit être créé par la fabrique concrète correspondante et implémente l’interface AbstractProduct ◦ L’utilisateur  Client utilise seulement les interfaces déclarée par AbstractFactory et par les classes AbstractProduct 8
  • 9. Abstract Factory (5/7)  Collaborations ◦ Normalement, une seule instance de fabrique concrète est créée à l’exécution. Cette fabrique crée les objets avec une implémentation spécifique. Pour créer différents sortes d’objets, les clients doivent utiliser différentes fabriques concrètes. ◦ La fabrique abstraite défère la création des objets à ses sous-classes concrètes 9
  • 10. Abstract Factory (6/7)  Conséquences ◦ Isolation des classes concrètes (seules les classes abstraites/interface sont connues) ◦ Échange facile des familles de produit ◦ Encouragement de la cohérence entre les produits 10
  • 11. Abstract Factory (7/7)  Implémentation ◦ Les fabriques sont souvent des singletons ◦ Ce sont les sous-classes concrètes qui font la création, en utilisant le plus souvent une Factory Method ◦ Si plusieurs familles sont possibles, la fabrique concrète utilise Prototype 11
  • 12. Patron de structure Adapter (1/4)  Idée ◦ Convertir l’interface d’une classe en une autre interface qui est attendue par un client. ◦ Permet de faire collaborer des classes qui n’auraient pas pu le faire à cause de l’incompatibilité de leurs interfaces  Exemple ◦ Une classe de bibliothèque conçue pour la réutilisation ne peut pas l’être à cause d’une demande spécifique de l’application ◦ Les Adapter de java : MouseAdapter, WindowAdapter,etc. 12
  • 13. Patron de structure Adapter (2/4)  Structure ◦ Une cible (Target) définit l’interface spécifique à l’application que le client utilise ◦ Le Client collabore avec les objets qui sont conformes à l’interface de Target ◦ La classe à adapter (Adaptee) est l’interface existante qui a besoin d’adaptation ◦ L’adaptateur (Adapter) adapte effectivement l’interface de Adaptee à l’interface de Target par traduction des accès (appels de méthode) 13
  • 15. Patron de structure Adapter (3/4)  Conséquences ◦ Pour la classe de l’objet qui adapte  Pas possible d’adapter une classe et ses sous-classes  Mais redéfinition possible du comportement (sous- classe) ◦ Pour l’objet qui adapte  Un adapter peut travailler avec plusieurs Adaptees  Plus difficile de redéfinir le comportement d’Adaptee (sous-classer puis obliger Adapter a référencer la sousclasse) 15
  • 16. Patron de structure Adapter (4/4)  Implémentation ◦ Par héritage (multiple) de la classe à adapter, en y ajoutant les méthodes de l’interface cible et en assurant les appels corrects aux méthodes de la classe à adapter ◦ Par composition, selon le même principe (faire correspondre les appels de méthode) sauf que la classe à adapter est un champ de la classe qui adapte 16
  • 17. Exmple Crier en JAVA sur Eclipse 17