patron de conception
-
Upload
shili-mohamed -
Category
Education
-
view
552 -
download
0
description
Transcript of patron de conception
Université de SousseInstitut Supérieur des Sciences Appliqués et de
Technologie
Patrons de Conception(Adaptateur)
Réalisé parRéalisé par :
ShiliShili MMohamed ohamed
(Adaptateur)
07/03/2014 1M2RINFOSPI
Introduction
Définition
Représentation d’un patron de conception
Menu
Organisation de patron de conception
Les Exemples
Conclusion
07/03/2014 2M2RINFOSPI
Introduction
D'après Buschmann . (1996), Un design pattern ou patron de
conception est une solution éprouvée à un problème de
Un pattern est une règle en trois parties exprimant une relation
entre un contexte, un problème et une solution ( Alexander)
conception est une solution éprouvée à un problème de
conception récurrent.
Un pattern s’exprime souvent par des interfaces et des classes
abstraites, dans un schéma UML
.07/03/2014 3M2RINFOSPI
Définition(1/3)
Patron adaptateur
Adaptateur est un patron de conception de type
structural qui permet de convertir l'interface d'une classe
en une autre interface que le client attend. Adaptateur fait
fonctionner un ensemble des classes qui n'auraient pas pu fonctionner un ensemble des classes qui n'auraient pas pu
fonctionner sans lui, à cause d'une incompatibilité
d'interfaces.
07/03/2014 4M2RINFOSPI
Source:(http://fr.wikipedia.org/wiki/Adapateur-patron)
Définition(2/3)
Structure
Figure 1:Schéma UML du motif de conception Adaptateur(http://fr.wikipedia.org/wiki/)
07/03/2014 5M2RINFOSPI
Définition(3/3)
Participants
Target: Cible
Définit l'interface métier utilisée par le Client.
Client
Travaille avec des objets implémentant l'interface Target Travaille avec des objets implémentant l'interface Target
Adaptee
Définit une classe existante devant être adaptée.
Adapter
Fait correspondre la classe de Adapté à l'interface Target
07/03/2014 6M2RINFOSPI
Représentation d’un patron de conception(1/2)
Les Design Patterns sont représentés par :
• Nom : augmente le vocabulaire, réifie une idée de
solution, permet de mieux communiquer.
• Problème : quand appliquer la forme, le contexte...
• Solution : les éléments de la solution, leurs relations,
responsabilités, collaborations. Pas de manière
précise, mais suggestives...
• Conséquences : résultats et compromis issus de
l'application de la forme
07/03/2014 7M2RINFOSPI
Représentation d’un patron de conception(2/2)
Exemple
• Nom: Salle d ’attente
• Problème :On doit attendre
• Solution: Toujours relaxante et pas confinée
• Conséquences: Attente active ou passive ? • Conséquences: Attente active ou passive ?
Durée de l ’attente ? Distraction ?
• Exemples
Aéroport, dentiste, ...
07/03/2014 8M2RINFOSPI
On distingue trois familles de patrons de conception selon leur utilisation :
1. Patrons de créationDonnent des solutions aux problèmes liés à l'instanciation des
classes
2. Patrons de structure
Organisation des patrons de conception(1/4)
2. Patrons de structureDonnent des solutions aux problèmes de structuration des classes, d'abstraction, de réutilisation
3. Patrons de comportementils permettent d'organiser les objets pour qu’ils collaborent entre eux
07/03/2014 9M2RINFOSPI
Patrons de création Fabrique
Une méthode dans une classe dérivée créé les instances associées
Fabrique abstraite Fabrique pour construire des objets liés
Monteur
Organisation des patrons de conception(2/4)
Monteur Fabrique pour construire des objets complexes de manière incrémentale
Prototype Fabrique pour cloner de nouvelles instances d'un prototype
Singleton
Fabrique pour n'avoir qu'une seule et unique instance
07/03/2014 10M2RINFOSPI
Patrons de structure Adaptateur
Un traducteur qui adapte une interface de serveur pour un client
Pont Découpler l'interface d'une classe et son implémentation
Objet composite Structure pour construire des agrégats récursifs
Décorateur
Organisation des patrons de conception(3/4)
Décorateur Etend un objet de manière transparente
Façade Façade simplifie l'interface pour un sous-système
Poids-mouche De nombreux objets partagés efficacement
Proxy Un objet est l'approximation d'un autre
07/03/2014 11M2RINFOSPI
Patrons de comportement Chaine de responsabilité
Requête déléguée au fournisseur de service responsable
Commande Requête comme objet de première classe
Interpréteur Interpréteur de langage pour une petite grammaire
Médiateur Médiateur coordonnes les interactions entre ses associés
Observateur
Organisation des patrons de conception(4/4)
Observateur Les observateurs sont mis au courant des changements des observés
Etat Object dont le comportement dépend de son état
Stratégie Abstraction pour la sélection d'un parmi plusieurs algorithmes
Patron de méthode Algorithme avec des pas fournit par une classe dérivée
Visiteur Opérations appliquée aux éléments d'une structure d'objet hétérogène
07/03/2014 12M2RINFOSPI
Exemple (1/2)
Problématique
L’interface propriétaire ne correspond pas à celle utilisée dans notre code, le système existant ne peut donc pas utiliser la classe propriétaire.
Exemple 1
Figure N°2:Interface
07/03/2014 13M2RINFOSPI
Exemple (2/2)
Solution : Créer un adaptateur
Figure N°3:Interface adaptateur
07/03/2014 14M2RINFOSPI
Exemple (1/3) Exemple 2
Figure N° 4:serveur web gère des documents
07/03/2014 15M2RINFOSPI
Exemple (2/3)
Figure N° 5:serveur web gère des documents
07/03/2014 16M2RINFOSPI
Exemple (3/3)
Figure N° 6:serveur web gère des documents 07/03/2014 17M2RINFOSPI
Exemple (1/3): Adaptateur (Adapter)
Exemple de situation :J’utilise une bibliothèque de traitement d’images (dont je ne peux pas modifier le code source). Pour fonctionner, elle attend un objet fournissant une interface d’accès en lecture et en écriture à un tableau en deux dimensions contenant des triplets d’octets.J’aimerais l’interfacer avec une bibliothèque fournissant une abstraction sur des tableaux unidimensionnels stockés de manière persistante dans une base de données ou dans un système de fichiers.
Exemple 3
persistante dans une base de données ou dans un système de fichiers.
Problème : Comment concilier les services proposés par la bibliothèque d’entrées/sorties et l’interface attendue par la bibliothèque de traitement d’images.
Solution : Utiliser un objet qui implémente l’interface attendue en faisant appel aux services proposés par une instance de la bibliothèque d’entrées/sorties.
07/03/2014 18M2RINFOSPI
Exemple (2/3)
Figure N°7: code java
07/03/2014 19M2RINFOSPI
Exemple (3/3)
Figure N°8: code java
07/03/2014 20M2RINFOSPI
Conclusion
L’utilisation des Design Patterns offre de nombreux avantages. Tout
d’abord cela permet de répondre à un problème de conception grâce à
une solution éprouvée et validée par des experts. Ainsi on gagne en
rapidité et en qualité de conception ce qui diminue également les
coûts.coûts.
De plus, les Design Patterns sont réutilisables et permettent de mettre
en avant les bonnes pratiques de conception.
07/03/2014 21M2RINFOSPI
Références
Christopher Alexander, S. Ishikawa, M. Silverstein, M. Jacobson, I. Fiksdahl-King and
S. Angel, (1977), A Pattern Language : Towns, Buildings, Construction, (ISBN 0-19-
501919-9)
Design patterns - Tête la première, de Eric Freeman, Elisabeth Freeman, Kathy
Sierra et Bert Bates. (ISBN 2-84177-350-7) (1re édition, septembre 2005)
Pattern Languages of Program Design - James O. Coplien, Douglas C. Schmidt. Pattern Languages of Program Design - James O. Coplien, Douglas C. Schmidt.
(1995), (ISBN 0-201-60734-4)
Les Patrons Abîmes - Détection, Explications et Restructuration - Cédric Bouhours,
2010, (ISBN 6-131-53501-9)
Liste des patrons de conception avec exemples, problèmes, solutions et solutions
alternatives.
http://badger.developpez.com/tutoriels/dotnet/patterns/adaptateur
07/03/2014 22M2RINFOSPI
07/03/2014 23M2RINFOSPI