1
Design Patterns
Une manière de capitaliser et
de réutiliser des objets
Les problèmes de la
programmation objet
Pourquoi concevoir des objets est difficile ?
Multiplicité des solutions « offertes » par les
langages
Multiplicité des architectures
Visions multiples :
Algorithmes et données
Multiplicité des granularités
Faible granularité : peu réutilisable ou réadaptable
Forte atomicité : multiplication peu gérable du nombre
total d’objets
2
Les problèmes de la
programmation objet
Pourquoi concevoir des objets «
réutilisables » est encore plus difficile ?
Définir des objets qui peuvent s’accommoder de
situations nouvelles (flexibilité)
Définir des hiérarchies de classes pas trop
contraignantes
Spécifier des relations entre les objets de
manière portable
Une telle conception
Est même pour un designer expérimenté «
impossible à réaliser en une fois »
L’idée : réutiliser les schémas de
raisonnement ayant fait leur preuve : les
design patterns
Christopher Alexander « Chaque schéma
décrit un problème récurrent dans un
environnement, et décrire une solution de
tel manière à ce que la solution puisse être
utilisée plus d’un million de fois sans jamais
faire deux fois la même chose de la même
manière »
(L’approche de Christopher Alexander est une
approche d’un architecte d’immeubles !)
3
Les éléments caractérisant un
« design pattern »
Le nom : sert à
caractériser un «
design problem »
Le problème : décrit le
problème et le
contexte que la
solution apporte
La solution : décrit les
éléments composant
le design, les relations
et collaborations avec
les autres éléments
Les conséquences :
les résultats et les
compromis liés à
l’utilisation du pattern
Spécification
Implantation
Une classification des «
Design pattern »
Les « creational patterns ». Ce sont des
patterns qui créent des objets.
Les « structural patterns ». Ce sont des
patterns qui définissent des modes
d’accès aux objets
Les « behavioral patterns ». Ce sont des
patterns qui définissent un comportement
à l’exécution.
4
Les éléments décrits dans un
« design pattern »
1.
Nom et
classification
2.
Objet
3.
Motivation
4.
Application
5.
Structure
6.
Participants
7.
Collaborations
8.
Conséquences
9.
Implantations
Un « design pattern » en détail
Adapter :
Aussi connu sous le nom de « wrapper »
Structural Design Pattern
Description brève
Convertit l’interface d’une classe en une autre classe afin
que cette objet puisse être utilisé par un client.
Motivation
L’implantation d’un objet est disponible selon une interface
Les algorithmes manipulant ces objets attendent une autre
interface
5
Exemple : utiliser une boîte de
texte dans un éditeur graphique ?
Le domaine d’application d’un
tel « design pattern »
Ce pattern peut-être utili
Quand on souhaite utilisé une classe
existante et qu’il n’existe aucune classe
compatible avec l’interface
Quand on souhaite créer des classes qui
pourront coopérer avec des classes non
corrélées ou non encore définies
Quand on souhaite hériter d’une classe
n’ayant pas l’interface souhaité
1 / 10 100%
La catégorie de ce document est-elle correcte?
Merci pour votre participation!

Faire une suggestion

Avez-vous trouvé des erreurs dans linterface ou les textes ? Ou savez-vous comment améliorer linterface utilisateur de StudyLib ? Nhésitez pas à envoyer vos suggestions. Cest très important pour nous !