SlideShare uma empresa Scribd logo
1 de 17
Baixar para ler 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

Mais conteúdo relacionado

Mais procurados

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
 

Mais procurados (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
 

Semelhante a 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
 

Semelhante a 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
 

Mais de Kamel Eddine Heragmi

Mais de 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)
 

Último

Computer Parts in French - Les parties de l'ordinateur.pptx
Computer Parts in French - Les parties de l'ordinateur.pptxComputer Parts in French - Les parties de l'ordinateur.pptx
Computer Parts in French - Les parties de l'ordinateur.pptxRayane619450
 
Cours ofppt du Trade-Marketing-Présentation.pdf
Cours ofppt du Trade-Marketing-Présentation.pdfCours ofppt du Trade-Marketing-Présentation.pdf
Cours ofppt du Trade-Marketing-Présentation.pdfachrafbrahimi1
 
Bolero. pptx . Film de A nnne Fontaine
Bolero. pptx . Film   de  A nnne FontaineBolero. pptx . Film   de  A nnne Fontaine
Bolero. pptx . Film de A nnne FontaineTxaruka
 
Sidonie au Japon . pptx Un film français
Sidonie    au   Japon  .  pptx  Un film françaisSidonie    au   Japon  .  pptx  Un film français
Sidonie au Japon . pptx Un film françaisTxaruka
 
SUPPORT DE SUR COURS_GOUVERNANCE_SI_M2.pptx
SUPPORT DE SUR COURS_GOUVERNANCE_SI_M2.pptxSUPPORT DE SUR COURS_GOUVERNANCE_SI_M2.pptx
SUPPORT DE SUR COURS_GOUVERNANCE_SI_M2.pptxssuserbd075f
 
Boléro. pptx Film français réalisé par une femme.
Boléro.  pptx   Film   français   réalisé  par une  femme.Boléro.  pptx   Film   français   réalisé  par une  femme.
Boléro. pptx Film français réalisé par une femme.Txaruka
 
gestion des conflits dans les entreprises
gestion des  conflits dans les entreprisesgestion des  conflits dans les entreprises
gestion des conflits dans les entreprisesMajdaKtiri2
 
La nouvelle femme . pptx Film français
La   nouvelle   femme  . pptx  Film françaisLa   nouvelle   femme  . pptx  Film français
La nouvelle femme . pptx Film françaisTxaruka
 
COURS SVT 3 EME ANNEE COLLEGE 2EME SEM.pdf
COURS SVT 3 EME ANNEE COLLEGE 2EME SEM.pdfCOURS SVT 3 EME ANNEE COLLEGE 2EME SEM.pdf
COURS SVT 3 EME ANNEE COLLEGE 2EME SEM.pdfabatanebureau
 

Último (10)

Computer Parts in French - Les parties de l'ordinateur.pptx
Computer Parts in French - Les parties de l'ordinateur.pptxComputer Parts in French - Les parties de l'ordinateur.pptx
Computer Parts in French - Les parties de l'ordinateur.pptx
 
Cours ofppt du Trade-Marketing-Présentation.pdf
Cours ofppt du Trade-Marketing-Présentation.pdfCours ofppt du Trade-Marketing-Présentation.pdf
Cours ofppt du Trade-Marketing-Présentation.pdf
 
Bolero. pptx . Film de A nnne Fontaine
Bolero. pptx . Film   de  A nnne FontaineBolero. pptx . Film   de  A nnne Fontaine
Bolero. pptx . Film de A nnne Fontaine
 
Sidonie au Japon . pptx Un film français
Sidonie    au   Japon  .  pptx  Un film françaisSidonie    au   Japon  .  pptx  Un film français
Sidonie au Japon . pptx Un film français
 
SUPPORT DE SUR COURS_GOUVERNANCE_SI_M2.pptx
SUPPORT DE SUR COURS_GOUVERNANCE_SI_M2.pptxSUPPORT DE SUR COURS_GOUVERNANCE_SI_M2.pptx
SUPPORT DE SUR COURS_GOUVERNANCE_SI_M2.pptx
 
Boléro. pptx Film français réalisé par une femme.
Boléro.  pptx   Film   français   réalisé  par une  femme.Boléro.  pptx   Film   français   réalisé  par une  femme.
Boléro. pptx Film français réalisé par une femme.
 
Evaluación Alumnos de Ecole Victor Hugo
Evaluación Alumnos de Ecole  Victor HugoEvaluación Alumnos de Ecole  Victor Hugo
Evaluación Alumnos de Ecole Victor Hugo
 
gestion des conflits dans les entreprises
gestion des  conflits dans les entreprisesgestion des  conflits dans les entreprises
gestion des conflits dans les entreprises
 
La nouvelle femme . pptx Film français
La   nouvelle   femme  . pptx  Film françaisLa   nouvelle   femme  . pptx  Film français
La nouvelle femme . pptx Film français
 
COURS SVT 3 EME ANNEE COLLEGE 2EME SEM.pdf
COURS SVT 3 EME ANNEE COLLEGE 2EME SEM.pdfCOURS SVT 3 EME ANNEE COLLEGE 2EME SEM.pdf
COURS SVT 3 EME ANNEE COLLEGE 2EME SEM.pdf
 

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