| Aglossa / Livres / |
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
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