Cours
14 pages
Français
Le téléchargement nécessite un accès à la bibliothèque YouScribe
Tout savoir sur nos offres
Le téléchargement nécessite un accès à la bibliothèque YouScribe
Tout savoir sur nos offres
14 pages
Français

Description

(C) Olivier Baudon - Université Bordeaux 1 13/10/03La référenceGamma, E., Helm, R., Johnson R. and Vlissides, J.,«!Design Patterns, Elements of Reusable Object-OrientedModèles de ConceptionSoftware!» Addison-Wesley Publishing Company, 1995Olivier Baudon Mais aussi • des sites web,Université Bordeaux 1• des ouvrages sur des contextes particuliers :13 octobre 2002 • Java• programmation distribuéeQu’est ce qu’un modèle deDescription des modèlesconceptionPrésentation Réalisation• Nom : permet d’identifier le modèle utilisé• Nom et classification • Structure• Intention • Constituants• Problème à traiter• Alias • Collaborations• Motivation • Conséquences• Solution : pas un modèle précis, encore• Indications d’utilisation • Implémentation• Exemples de codemoins une implémentation• Utilisations remarquables• Conséquences • Modèles apparentésTrois rôles Modèles créateurs• Fabrique abstraite : • Prototype :• Modèles créateurs Æ processusfamilles de produits instanciation pard’instanciation clonage• Monteur : création• Modèles structuraux Æ composition des d’un objet composite • Singleton : classe àinstance unique avec• Fabrication :classes et des objetsaccès globaldélégation aux sous-• Modèles de comportement Æ algorithmes classes desinstanciationset répartition des tâches entre objets1(C) Olivier Baudon - Université Bordeaux 1 13/10/03Fabrique abstraite Fabrique abstraite«!La fabrique abstraite fournit uneinterface pour la création de ...

Sujets

Informations

Publié par
Nombre de lectures 54
Langue Français

Exrait

(C) Olivier Baudon - Université Bordeaux 1 13/10/03
La référence
Gamma, E., Helm, R., Johnson R. and Vlissides, J.,
«!Design Patterns, Elements of Reusable Object-OrientedModèles de Conception
Software!»
Addison-Wesley Publishing Company, 1995
Olivier Baudon Mais aussi
• des sites web,Université Bordeaux 1
• des ouvrages sur des contextes particuliers :
13 octobre 2002 • Java
• programmation distribuée
Qu’est ce qu’un modèle de
Description des modèles
conception
Présentation Réalisation
• Nom : permet d’identifier le modèle utilisé
• Nom et classification • Structure
• Intention • Constituants
• Problème à traiter
• Alias • Collaborations
• Motivation • Conséquences• Solution : pas un modèle précis, encore
• Indications d’utilisation • Implémentation
• Exemples de codemoins une implémentation
• Utilisations remarquables
• Conséquences • Modèles apparentés
Trois rôles Modèles créateurs
• Fabrique abstraite : • Prototype :• Modèles créateurs Æ processus
familles de produits instanciation par
d’instanciation clonage• Monteur : création
• Modèles structuraux Æ composition des d’un objet composite • Singleton : classe à
instance unique avec• Fabrication :classes et des objets
accès globaldélégation aux sous-
• Modèles de comportement Æ algorithmes classes des
instanciationset répartition des tâches entre objets
1(C) Olivier Baudon - Université Bordeaux 1 13/10/03
Fabrique abstraite Fabrique abstraite
«!La fabrique abstraite fournit une
interface pour la création de familles
d’objets apparentés ou interdépendants,
sans qu’il soit nécessaire de spécifier
leur classe concrète!»
Fabrique abstraite Monteur
+ isole les classes concrètes
«!Dissocie la construction d’un objet(encapsulation)
complexe de sa représentation, de sorte+ facilite la substitution de familles de
que le même processus de constructionproduits
permette des représentations+ favorise le maintien de la cohérence
différentes!»entre les objets
- gérer de nouveaux types de produits est
difficile
Monteur Monteur
2(C) Olivier Baudon - Université Bordeaux 1 13/10/03
Monteur Fabrication
+ permet de modifier la représentation
«!Définit une interface pour la créationinterne d’un produit
d’un objet, mais en laissant à des sous-+ isole le code de construction et de
classes le choix des classes à instancier.représentation
La fabrication permet à une classe de+ permet un meilleur contrôle du
déléguer l’instanciation à des sous-processus de construction
classes.!»
Fabrication Fabrication
+ procure un gîte aux sous-classes
+ interconnecte des hiérarchies
parallèles de classes
Prototype Prototype
«!Spécifie le type des objets à créer à
partir d’une instance de prototype, et
crée de nouveaux objets en copiant ce
prototype!»
3(C) Olivier Baudon - Université Bordeaux 1 13/10/03
Prototype Singleton
+ addition et suppression de produits à
«!Garantit qu’une classe n’a qu’unel’exécution
seule instance et fournit un point d’accès+ spécification de nouveaux objets par
valeurs modifiables de type global à cette classe!»
+ spécification de nouveaux objets par
structures modifiables
+ limite le nombre de dérivations de classes
+ facilite le chargement dynamique
Singleton Singleton
+ accès controlé à une instance unique
+ réduction de l’espace des noms
+ raffinement des opérations et de la
représentation
+ autorise un nombre variable d’instances
+ souplesse améliorée par rapport aux
opérations de classes
Modèles structuraux Adaptateur
• Adaptateur : changer • Décorateur : Enrichir
d’interface dynamiquement un objet
«!Convertit l’interface d’une classe en
• Pont : dissocier une • Façade : unifier
une autre conforme à l’attente du client.interface et ses l’interface d’un système
L’Adaptateur permet à des classes deimplémentations • Poids mouche : partager
• Composite : composer des objets pour en collaborer, qui n’auraient pu le faire du
des objets en diminuer le nombre fait d’interfaces incompatibles. »
structures • Procuration : fournir un
arborescentes objet de substitution pour
contrôler l’accès
4(C) Olivier Baudon - Université Bordeaux 1 13/10/03
Adaptateur Adaptateur
Un adaptateur de classe (par héritage)
- ne peut adapter une classe et ses sous-
classes simultanément
+ permet de redéfinir certains comportements
de l’Adaptée
+ introduit un seul objet et aucun pointeur
supplémentaire pour atteindre Adaptée
Adaptateur Pont
Un adaptateur d’objet (par délégation)
+ permet à un seul Adaptateur d’adapter
«!Découple une abstraction de sonsimultanément Adaptée et toutes ses sous-classes.
+ permet d’ajouter des fonctionnalités à tous les implémentation afin que les deux
Adaptées en une seule fois. éléments puissent être modifiés
- rend plus difficile la surcharge du comportement indépendamment l’un de l’autre.!»
de l’Adaptée. Une telle impose la
dérivation de l’Adaptée et impose que
l’Adaptateur fasse référence à la sous-classe
plutôt qu’à Adaptée elle-même.
Pont Pont
+ découplage de l’interface et de l’implémentation
+ évite de recompiler l’Abstraction lors des
changements d’implémentations
+ les hiérarchies d’Abstraction et d’Implementeur
peuvent être étendues indépendamment l’une de
l’autre
+ dissimule des détails d’implémentation aux
clients tels que les partages d’objets ou le comptage
de références.
5(C) Olivier Baudon - Université Bordeaux 1 13/10/03
Composite Composite
«!Le modèle Composite compose des
objets en des structures arborescentes
pour représenter des hiérarchies
composant/composé. Il permet au client
de traiter de la même et unique façon les
objets individuels et les combinaisons de
ceux-ci.!»
Composite Décorateur
+ simplifie le niveau client. Le client peut
«!Attache dynamiquement destraiter à l’identique les structures composites
et les objets individuels responsabilités supplémentaires à un
+ rend plus facile l’adjonction de nouveaux objet. Les décorateurs fournissent une
types de composants. alternative souple à la dérivation, pour
- rend difficile l’imposition de contraintes sur étendre les fonctionnalités!»
la composition d’un composite.
Décorateur Décorateur
+ plus de souplesse que l’héritage classique
+ évite de surcharger les classes situées les
plus en haut de la hiérarchie
- un objet décoré n’a pas la même identité que
l’objet de départ
- augmente le nombre d’objets
6(C) Olivier Baudon - Université Bordeaux 1 13/10/03
Façade Façade
«!Fournit une interface unifiée à
l’ensemble des interfaces d’un sous-
système. La facade fournit une interface
de plus haut niveau, qui rend le sous-
système plus facile à utiliser!»
Façade Poids mouche
+ masque les composants du sous-système et
«!Le modèle Poids mouche utilise unele rend plus facile à utiliser
+ favorise un couplage faible entre le sous- technique de partage qui permet la mise
système et ses clients en œuvre efficace d’un grand nombre
+ n’empêche pas les applications d’utiliser les d’objets de fine granularité »
classes du sous-système si nécessaire
Poids mouche Poids mouche
+ économie de place mémoire
- coûts à l’exécution du fait du transfert des
états extrinsèques
7(C) Olivier Baudon - Université Bordeaux 1 13/10/03
Procuration Procuration
«!Fournit à un tiers objet un mandataire
ou un remplaçant, pour contrôler
l’accès à cet objet!»
Modèles comportementaux
Procuration
• Chaîne de • Itérateur : fournit un
responsabilités!: éviter le accès séquentiel aux+ introduit un degré d’indirection dans l’accès
couplage entre l’émetteur éléments d’un agrégat
à un objet et les récepteurs d’une • Médiateur : unifier les
• permet de cacher qu’un objet réside dans requête modalités d’interaction
un autre espace d’adresse (cf EJB) • Commande : encapsuler d’un ensemble d’objets
une requête comme un • Memento : saisir et• permet d’effectuer des optimisations
objet transmettre l’état internetelles que la création d’un objet à la
• Interpréteur : définir une d’un objet sans violer
demande représentation d’une l’encapsulation, pour
• permet de vérifier si l’appelant a les grammaire ainsi qu’un pouvoir le restaurer
permissions requises pour effectuer la interpréteur utilisant cette
représentationrequête
Modèles comportementaux
Chaîne de responsabilités
• Observateur : définir une • Patron de méthode :
interdépendance de type définit le squelette d’un
«!un à plusieurs!» algorithme en en
déléguant certaines «!Eviter le couplage de l’émetteur d’une• Etat : permet à un objet
étapes à des sous-classesde modifier son requête à ses récepteurs, en donnant à
comportement quand son • Visiteur : représentation
plus d’un objet la possibilitéétat interne change, d’une opération
comme s’il changeait de applicable aux éléments d’entreprendre la requête. Chaîner les
classe d’une structure d’objets objets récepteurs et faire passer la
• Stratégie : définit une
requête tout au long de la chaîne,famille d’algorithmes et
les rend jusqu’à ce qu’un objet la traite.!»
interchangeables
8(C) Olivier Baudon - Université Bordeaux 1 13/10/03
Chaîne de responsabilités
Chaîne de responsabilités
+ réduit le couplage.
+ accroît la souplesse dans l’attribution de
responsabilités aux objets.
- la réponse n’est pas garantie.
Commande Commande
«!Encapsuler une requête comme un
objet, autorisant ainsi le paramétrage
des clients par différentes requêtes, files
d’attente et récapitulatifs de requêtes, et
de plus, permettant la réversion des
opérations.!»
Commande
Interpréteur
+ supprime tout couplage entre l’objet qui
invoque une opération et celui qui sait comment
«!Pour un langage donné, définir uneréaliser cette opération.
+ les commandes sont des objets : elles peuvent représentation de sa grammaire, en
être manipulées et étendues comme tel. même temps qu’un interpréteur utilisant
+ on peut assembler les commandes dans une cette représentation, pour interpréter les
commande composite. phrases du langage.!»
9(C) Olivier Baudon - Université Bordeaux 1 13/10/03
Interpréteur
Interpréteur
+ facilite la modification et l’extension de la
grammaire
+ le codage de la grammaire est facile
+ facilite l’introduction de nouveaux modes
d’interprétation des expressions
- peu adapté aux grammaires complexes. Le
nombre de classes peut être élevé et le résultat
difficile à maintenir
Itérateur Itérateur
«!Fournit un moyen d’accès séquentiel
aux éléments d’un agrégat d’objets, sans
mettre à découvert la représentation
interne de celui-ci.!»
Itérateur
Médiateur
+ permet des modifications dans le parcours des
agrégats «!Définit un objet qui encapsule les
+ simplifie l’interface de l’agrégat modalités d’interaction d’un certain
+ permet plusieurs parcours simultanés de ensemble d’objets. Le Médiateur
l’agrégat favorise le couplage faible en dispensant
les objets de se faire explicitement
référence, et il permet donc de faire
varier indépendamment les relations
d’interaction.!»
10

  • Accueil Accueil
  • Univers Univers
  • Ebooks Ebooks
  • Livres audio Livres audio
  • Presse Presse
  • BD BD
  • Documents Documents