patron de conception

23
Université de Sousse Institut Supérieur des Sciences Appliqués et de Technologie Patrons de Conception (Adaptateur) Réalisé par Réalisé par : Shili Shili Mohamed ohamed (Adaptateur) 07/03/2014 1 M2RINFOSPI [email protected]/[email protected]

description

desgin patron patron adaptateur

Transcript of patron de conception

Page 1: 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

[email protected]/[email protected]

Page 2: patron de conception

Introduction

Définition

Représentation d’un patron de conception

Menu

Organisation de patron de conception

Les Exemples

Conclusion

07/03/2014 2M2RINFOSPI

Page 3: patron de conception

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

Page 4: patron de conception

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)

Page 5: patron de conception

Définition(2/3)

Structure

Figure 1:Schéma UML du motif de conception Adaptateur(http://fr.wikipedia.org/wiki/)

07/03/2014 5M2RINFOSPI

Page 6: patron de conception

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

Page 7: patron de conception

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

Page 8: patron de conception

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

Page 9: patron de conception

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

Page 10: patron de conception

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

Page 11: patron de conception

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

Page 12: patron de conception

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

Page 13: patron de conception

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

Page 14: patron de conception

Exemple (2/2)

Solution : Créer un adaptateur

Figure N°3:Interface adaptateur

07/03/2014 14M2RINFOSPI

Page 15: patron de conception

Exemple (1/3) Exemple 2

Figure N° 4:serveur web gère des documents

07/03/2014 15M2RINFOSPI

Page 16: patron de conception

Exemple (2/3)

Figure N° 5:serveur web gère des documents

07/03/2014 16M2RINFOSPI

Page 17: patron de conception

Exemple (3/3)

Figure N° 6:serveur web gère des documents 07/03/2014 17M2RINFOSPI

Page 18: patron de conception

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

Page 19: patron de conception

Exemple (2/3)

Figure N°7: code java

07/03/2014 19M2RINFOSPI

Page 20: patron de conception

Exemple (3/3)

Figure N°8: code java

07/03/2014 20M2RINFOSPI

Page 21: patron de conception

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

Page 22: patron de conception

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

Page 23: patron de conception

07/03/2014 23M2RINFOSPI