PATRONS DE CONCEPTION
DESIGN PATTERNS
 

Ce document s'adresse aux personnes déjà familières avec la programmation orientée objet, et qui s'intéressent à la phase de conception d'un logiciel. Je tiens à remercier ici Krishna, avec qui j'ai préparé le cours à l'ISIMA, et dont ce document fait partie.

L'étape de conception est importante avant de se lancer dans l'écriture du code d'un logiciel. Il faut en effet bien réfléchir à sa structure afin de fournir un code maintenable et réutilisable. Pour s'aider dans cette phase, on dispose de patrons de conception, qui sont des solutions conceptuelles à des problèmes récurrents de développement logiciel. Ces patrons ont été éprouvés et peuvent être appliqués dans de nombreuses situations.

Les patrons de conception, ou design patterns (DP), sont répertoriés afin que chacun puisse les consulter et les réutiliser. En particulier, un livre est devenu incontournable: celui du Gang of Four (Design Patterns: Elements of Reusable Object-Oriented Software - Gamma, Helm, Johnson, Vlissides - Addison-Wesley, 1994). Bien évidemment, les patrons présentés dans ce livre ne sont pas les seuls, et je vous conseille de consulter Wikipedia pour une liste plus exhaustive.

Après une brève introduction sur la réutilisation conceptuelle, et sur le rôle des patrons de conception, nous présentons plusieurs catégories de patrons: création, structure, comportement et service. Nous abordons également l'architecture Modèle-Vue-Contrôleur, très utile dans la conception d'une interface graphique. Voici un bref résumé de chacun des chapitres de ce document. Ils sont présentés sous la forme d'un diaporama qui, je l'espère, sera assez explicite.


  • Rappelle les différents niveaux d'abstraction qui conduisent à l'élaboration d'un logiciel: l'analyse, la conception et l'implémentation; et précise le rôle des patrons de conception. La classification et le formalisme employés par le Gang of Four pour définir des patrons de conception sont également présentés.


  • Présente des patrons dits de création, qui permettent d'abstraire le processus de création de composants: leur type réel, leur initialisation et leur composition peuvent être masqués. Les patrons présentés sont la fabrique (Factory Method), la fabrique abstraite (Abstract Factory), le monteur (Builder), le prototype et le singleton.


  • Présente des patrons dits de structure, qui proposent des solutions pour concevoir de nouveaux composants (plus vastes et plus complexes) à partir de classes et d'objets existants. Les patrons présentés sont l'adaptateur (Adapter), le pont (Bridge), le composite, le décorateur (Decorator), la façade, le poids-mouche (Flyweight) et le proxy.


  • Présente des patrons dits de comportement, qui permettent d'abstraire le comportement de composants, et proposent des solutions sur la structure algorithmique, l'affectation de responsabilités et la communication entre objets. Les patrons présentés sont la chaîne de responsabilité (Chain of Responsibility), la commande (Command), l'itérateur (Iterator), le médiateur (Mediator), le mémento (Memento), l'observateur (Observer), l'état (State), la stratégie (Strategy), la méthode patron (Template Method) et le visiteur (Visitor).


  • Présente l'architecture appelée Modèle-Vue-Contrôleur (MVC), dont l'objectif est de découpler la couche métier d'une application de la couche interface homme-machine.


  • Présente des patrons dits de service, qui proposent des solutions pour accéder et configurer des services. Les patrons présentés sont le configurateur de composant (Component Configurator), l'intercepteur (Interceptor) et l'interface d'extension (Extension Interface).