Design Patterns

Catalogue de modèles de conception réutilisables

Auteur : Erich Gamma, Richard Helm, Ralph Johnson, John Vlissides

Édition : International Thomson Publishing France, 1996 (traduction de Design Patterns: Elements of Reusable Object-Oriented Software, Addison-Wesley, 1994)

ISBN : 2841800547

Même si la technique de la conception orientée objet est vieille de quelques années, son acceptation courante est rendue difficile par le manque de soutien pédagogique de valeur. Passés les cours d'initiation basés sur des analogies trop évidentes avec des objets physiques, l'apprenti programmeur est souvent démuni lorsqu'il est confronté à un problème abstrait. Pour peu qu'il soit en même temps au prise avec une difficulté algorithmique, la conception fonctionnelle resurgira pour produire ce qu'on peut appeller du C+.

Ce livre peut se lire comme un cours avancé de conception objet. Son originalité provient de sa structure non linéaire. Une analyse de cas (un éditeur de documents) sert d'introduction à un dictionnaire de modèles (pattern) selon le principe utilisé par l'architecte Christopher Alexander (A Design Pattern, Oxford University Press, 1977)  : comme l'expérience a permis de faire émerger des solutions types à des problèmes récurrents, faisons circuler l'expérience, au lieu d'inventer la roue à chaque fois. Comme la réutilisation de code figure parmi les objectifs historiques de la programmation objet, la méthode est donc appropriée et ce livre le résultat du travail collectif des meilleurs penseurs de la programmation objet. D'une façon générale, ces modèles identifient les facteurs de changement dans les codes et à les isolent dans des objets chargés du niveau d'abstraction juste nécessaire. Chaque modèle est donc nommé puis présenté dans son contexte d'apparition, son schéma UML, des implémentations en C++ ou Smalltalk, et des références à des applications. Chaque partie se termine par une discussion sur les facteurs qui différencient ou rapprochent les modèles d'une même catégorie.

Parmi les modèles produits, le plus connu est sans doute l'iterateur. Mais, outre qu'il n'est pas le plus facile à mettre en œuvre dans des programmes multitâches, les modèles de fabrication ou de composition sont ceux qui provoqueront le plus de réflexion pour le lecteur : ils sont les plus mal pris en charge par des langages comme le C++ (qui facilite la création de classes et d'objets un peu partout dans le code) alors que ce problème intervient de façon récurrente, même dans des programmes aux ambitions restreintes. Ces modèles sont donc les bienvenus pour rendre un peu d'organisation à des projets en dérive de complexité bien qu'orientés objet.

En résumé, Design Patterns est une référence pour la conception objet comme The Art of Computer Programming pour l'algorithmique.

cotation : 5/5

- Jean-Philippe Papillon, 19 mars 2000

Table des matières

Chapitre 1. Introduction

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

Le modèle de conception dans MVC de Smalltalk

Description de modèles de conception

Catalogue des modèles de conception

Organisation du catalogue

Les modèles de conception, solutions des problèmes de conception

Comment choisir un modèle de conception

Comment utiliser un modèle de conception

Chapitre 2. Étude de cas : conception d'un éditeur de documents

Problèmes de la conception

Structure du document

Formatage

Ornementation de l'interface utilisateur

Offrir plusieurs standards de « Look-and-Feel »

Service de systèmes de fenêtrage multiples

Opérations utilisateurs

Vérification d'orthographe et césure de mots

Résumé

Chapitre 3. Modèles créateurs

FABRIQUE ABSTRAITE

MONTEUR

FABRICATION

PROTOTYPE

SINGLETON

Discussion des modèles de création

Chapitre 4. Modèles structuraux

ADAPTATEUR

PONT

COMPOSITE

DÉCORATEUR

FAÇADE

POIDS MOUCHE

PROCURATION

Discussion des modèles structuraux

Chapitre 5. Modèles de comportement

CHAÎNE DE RESPONSABILITÉS

COMMANDE

INTERPRÉTEUR

ITÉRATEUR

MÉDIATEUR

MÉMENTO

OBSERVATEUR

ÉTAT

STRATÉGIE

PATRON DE MÉTHODE

VISITEUR

Discussion des modèles de comportement

Chapitre 6. Conclusion

Ce qu'il faut attendre des modèles de conception

Un bref historique

La communauté des modèles

Invitation

Le mot de la fin

Annexes

Glossaire

Guide de notation

Classes Fondations

Bibliographie


© Aglossa, 2000