suivant: Mode d'emploi
monter: Les catalogues de conception
précédent: Les interfaces Homme-machine
Sous-sections
- Le nom de modèle
- décrit en un ou deux mots un problème de conception.
- Le problème
- décrit les situations où le modèle s'applique.
- La solution
- décrit les éléments qui constituent la conception,
les relations entre eux, leurs parts dans la solution, leur coopération.
- Les conséquences
- sont les effets résultants de la mise en
uvre du modèle et les variantes de compromis que celle-ci entraîne.
|
Rôle |
|
Créateur |
Structurel |
Comportement |
Domaine |
Classe |
Fabrication |
Adaptateur |
Interprète |
|
|
|
|
Patron de méthode |
|
Objet |
Fabrique abstraite |
Adaptateur |
Chaîne de
responsabilité |
|
|
Monteur |
Pont |
Commande |
|
|
Prototype |
Composite |
Itérateur |
|
|
Singleton |
Décorateur |
Médiateur |
|
|
|
Façade |
Mémento |
|
|
|
Poids mouche |
Observateur |
|
|
|
Procuration |
État |
|
|
|
|
Stratégie |
|
|
|
|
Visiteur |
- Noms de modèle et classification
- ...
- Intention
- ...
- Alias
- ...
- Motivation
- ...
- Indications d'utilisation
- ...
- Structure
- ...
- Constituants
- ...
- Collaborations
- ...
- Conséquences
- ...
- Implémentation
- ...
- Exemples de code
- ...
- Utilisations remarquables
- ...
- Modèles apparentés
- ...
Ils permettent de rendre un système indépendant de la façon dont ses
objets ont été créés, combinés et concrétisés.
Ils encapsulent la connaissance des classes concrètes que le système
utilise, de sorte que tout ce que le système connaît de ces objets,
est leurs interfaces, telles que définies par des classes abstraites.
Cette documentation
(la hiérarchie des classes) est celle d'une première implémentation pour la
création d'un labyrinthe.
- Intention
- La fabrique abstraite fournit une interface, pour créer des
familles d'objets apparentés ou dépendants, sans avoir à spécifier
leurs classes concrètes.
- Exemples de code
-
la hiérarchie des classes.
- Intention
- Le monteur dissocie, dans un objet complexe, sa
construction de sa représentation, de sorte que, le même procédé de
construction puisse engendrer des représentations différentes.
- Exemples de code
-
la hiérarchie des classes.
Ils étudient la façon de composer des classes et des objets pour réaliser des structures plus importantes. Les modèles de classes structurelles utilisent l'héritage pour composer interfaces et implémentations. Les modèles objets structuraux décrivent les moyens de composer des objets pour réaliser de nouvelles fonctionnalités.
- Intention
- convertit l'interface d'une classe en une autre
conforme à l'attente du client. L'adaptateur permet à des classes de
collaborer, qui n'auraient pu le faire du fait d'interfaces incompatibles.
- Un exemple de code
- Deux applications dont une propriétaire que l'on ne peut modifier. De même il n'est pas souhaitable de modifier profondément notre application pour qu'elle puisse utiliser directement l'application propriétaire.
Une application cherche à utiliser les fonctionnalités d'une autre, alors que ses interfaces sont déjà établies.
La documentation et les sources.
- Exemples de code avec l'adaptateur de classe
-
Une version avec le modèle Adaptateur de classes.
- Exemples de code avec l'adaptateur d'objet
-
Une version avec le modèle Adaptateur d'objets.
- Intention
- L'état permet à un objet de modifier son
comportement, quand son état interne change. Tout se passera comme si
l'objet changeait de classe.
- Exemples de code
- Un contrôleur pour simuler les états d'un processus dans un système d'exploitation.
Trois hiérarchies de classes possibles :
La version sans le modèle état.
Une première version avec le modèle état.
Une deuxième version avec le modèle état.
- Intention
- définit une interdépendance de type un à
plusieurs, de façon telle que, quand un objet change d'état, tous ceux
qui en dépendant en soient notifiés automatiquement et mis à jour.
- Un exemple de code
- Une pyramide est posée sur un parallelipipède. On s'interresse au volume global, ainsi qu'aux surfaces des trois projections suivant les trois axes. L'utilisateur peut à tout instant changer les points qui définissent la pyramide et le parallelipipède.
Une pyramide sur un parallelipipède.
- Fabrique Abstraite
- fournit une interface, pour créer des
familles d'objets apparentés ou dépendants, sans avoir à spécifier
leurs classes concrètes.
- Adaptateur
- convertit l'interface d'une classe en une autre
conforme à l'attente du client. L'adaptateur permet à des classes de
collaborer, qui n'auraient pu le faire du fait d'interfaces incompatibles.
- Pont
- découple une abstraction de son implémentation afin que
les deux éléments puissent être modifiés indépendamment l'un de l'autre.
- Monteur
- dissocie, dans un objet complexe, sa construction de sa
représentation, de sorte que, le même procédé de construction puisse
engendrer des représentations différentes.
- Chaîne de responsabilité
- d'une part évite le couplage de
l'émetteur d'une
requête à ses récepteurs, en donnant à plus d'un objet la possibilité
d'entreprendre la requête; d'autre part chaîne les objets récepteurs
et fait passer la requête tout au long de la chaîne, jusqu'à ce qu'un
objet la traite.
- Commande
- encapsule 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.
- 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.
- Décorateur
- attache dynamiquement des responsabilités
supplémentaires à un objet. Les décorateurs fournissent une
alternative souple à la dérivation, pour étendre les fonctionnalités.
- Façade
- fournit une interface unifiée, à l'ensemble des
interfaces d'un sous-systèmes. La façade fournit une interface de plus
haut niveau, qui rend le sous-systèmes plus facile à utiliser.
- Fabrication
- définit une interface pour la création d'un objet,
tout en laissant à des sous-classes le choix de la classe à
instancier. Une fabrication permet de déférer à des sous-classes les
instanciations d'une classe.
- Poids Mouche
- utilise une technique de partage qui permet la
mise en uvre efficace d'un grand nombre d'objets de fine granularité.
- Interpréteur
- définit, pour un langage donné, une représentation
de sa grammaire, en même temps qu'un interpréteur utilisant cette
représentation pour interpréter les phrases du langage.
- 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.
- Médiateur
- définit un objet qui encapsule les modalités
d'interaction d'un certain ensemble d'objets. Le médiateur 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.
- Mémento
- saisi et transmet à l'extérieur d'un objet, sans
violation de l'encapsulation, l'état interne de celui-ci, dans le but
de pouvoir ultérieurement le restaurer dans cet état.
- Observateur
- définit une interdépendance de type un à
plusieurs, de façon telle que, quand un objet change d'état, tous ceux
qui en dépendant en soient notifiés automatiquement et mis à jour.
- Prototype
- spécifie les espèces d'objets à créer, en utilisant
une instance de type prototype, et crée de nouveaux objets par copies
de ce prototype.
- Procuration
- fournit à un tiers objet un mandataire ou un
remplaçant, pour contrôler l'accès à cet objet.
- Singleton
- garantit qu'une classe n'a qu'une seule instance, et
fournit à celle-ci, un point d'accès de type global.
- État
- permet à un objet de modifier son comportement, quand son
état interne change. Tout se passera comme si l'objet changeait de classe.
- Stratégie
- définit une famille d'algorithmes, encapsule chacun
d'entre eux, et les rend interchangeables. Le modèle stratégie permet
aux algorithmes d'évoluer indépendamment des clients qui les utilisent.
- Patron de méthode
- définit, dans une opération, le squelette
d'un algorithme, en en déléguant certaines étapes à des
sous-classes. Le patron de méthode permet de redéfinir par des
sous-classes, certaines parties d'un algorithme, sans avoir à modifier
la structure de ce dernier.
- Visiteur
- fait la représentation d'une opération applicable aux
éléments d'une structure d'objet. Il permet de définir une nouvelle
opération, sans qu'il soit nécessaire de modifier la classe des
éléments sur lesquels elle agit.
suivant: Mode d'emploi
monter: Les catalogues de conception
précédent: Les interfaces Homme-machine
Alain GRIFFAULT
2000-10-30