Abstract factory+adapter

1,073 views

Published on

deseign pattern

Published in: Education
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
1,073
On SlideShare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
38
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Abstract factory+adapter

  1. 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. 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 unefamille 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, leurresponsabilités, relations, et intéractions• conséquences: impact et compromis résultant de l’application dupatron 2
  3. 3. Types de patrons Créationnels:AbstractFactory,Singleton, Builder,… • Font l’abstracion du processus l’instanciasion afin de rendre unsystème indépendant de la façon dont ses objets sont créés etreprésentés; Structurels: Adapter, Bridge, Composite, Decorator, Façade,… • Se concentrent sur la façon dont les classes et les objets sontcomposés pour obtenir de plus grandes structures Comportementaux: Iterator, Visitor, Observer, State, trategy, Mediator, …• Décrivent les modèles de communicaton et interacton entre lesobjets 3
  4. 4. AbstractFactory Adapter 4
  5. 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. 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
  7. 7. Abstract Factory (3/7) 7
  8. 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. 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. 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. 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. 12. Patron de structureAdapter (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. 13. Patron de structureAdapter (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
  14. 14. Adapter (2/4) 14
  15. 15. Patron de structureAdapter (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. 16. Patron de structureAdapter (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. 17.  Exmple Crier en JAVA sur Eclipse 17

×