next up previous
Next: Mode d'emploi Up: Les catalogues de conception Previous: Les interfaces Homme-machine

Sous-sections

Les modèles de conception

Qu'est ce qu'un modèle de conception

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 \oe uvre du modèle et les variantes de compromis que celle-ci entraîne.

Cataloque et classification des modèles de conception

  Rôle
  Créateur Structurel Comportement
Domaine Classe Fabrication Adapdateur Interprète
        Patron de méthode
  Objet Fabrique abstraite Adapdateur Chaine de responsabilité
    Monteur Pont Commande
    Prototype Composite Itérateur
    Singleton Décorateur Médiateur
      Façade Memento
      Poids mouche Observateur
      Procuration Etat
        Stratégie
        Visiteur

Description des modèles de conception

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
...

Les modèles créateurs

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.

Un exemple : un labyrinthe

Cette documentation (la hiérarchie des classes) est celle d'une première implémentation pour la création d'un labyrinthe.

La fabrique abstraite

Intention
La fabrique abstraite fournit une interface, pour créer des familles d'objets apparanetés ou dépendants, sans avoir à spécifier leurs classes concrètes.

Exemples de code
la hiérarchie des classes.

Le monteur

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.

La fabrication

Intention
La 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.

Exemples de code
la hiérarchie des classes.

Le prototype

Intention
Le 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.

Exemples de code
la hiérarchie des classes.

Le singleton

Intention
Le singleton garantit qu'une classe n'a qu'une seule instance, et fournit à celle-ci, un point d'accès de type global.

Exemples de code
la documentation.

Les modèles structuraux

Les modèles comportementaux

L'état

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
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.

Résumé

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.
Adapdateur
convertit l'interface d'une classe en une autre conforme à l'attente du client. L'adapdateur 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épendammenet 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ème. La façade fournit une interface de plus haut niveau, qui rend le sous-système 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 \oeuvre 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'intéraction 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.
Memento
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éfintit 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 at automatiquement 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.
Etat
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.


next up previous
Next: Mode d'emploi Up: Les catalogues de conception Previous: Les interfaces Homme-machine
Alain GRIFFAULT
2000-01-05