Les design patterns dans la conception de logiciels
Modélisation et conception avec les design patterns
Dans cet ouvrage, nous avons étudié les design patterns au travers de leur mise en œuvre dans des exemples. Nous le savons désormais, les design patterns facilitent la conception en offrant des solutions robustes à des problèmes connus. Ces solutions sont basées sur une architecture qui respecte les bonnes pratiques de la programmation orientée objet, énoncés au début de cet ouvrage.
Dans l’analyse d’un nouveau projet, l’étape de découverte des objets et de leur modélisation ne nécessite pas l’utilisation des design patterns. Celle-ci débouche sur plusieurs diagrammes de classes contenant les classes représentant les objets du domaine. Ces objets sont issus de la modélisation, ils ne sont pas destinés à résoudre directement les aspects fonctionnels d’une application. Dans le cadre de notre système de ventes en ligne, ces objets sont les véhicules, les constructeurs, les clients, le vendeur, les fournisseurs, les commandes, les factures, etc. La figure 31.1 montre une partie de cette modélisation, à savoir le diagramme de classes des véhicules.
Figure 31.1 - Diagramme de classes des véhicules
Cette hiérarchie décrit la structure en objets du domaine. Ensuite, il faut implémenter les...
Autres apports des design patterns
1. Un référentiel commun
Comme les classes, les design patterns constituent des abstractions. Mais les design patterns portent sur plusieurs classes interagissant entre elles. Au long des chapitres, nous les avons représentés par une structure constituée d’un diagramme de classes complété par des explications sur les participations et sur les collaborations. Il s’agit donc d’une abstraction plus riche qu’une classe. Le fait de pouvoir nommer, décrire et classifier les design patterns confère à leur catalogue un statut de référentiel. Ainsi, lors de la conception d’un système, il est possible d’évoquer l’utilisation d’un design pattern par son nom, qui renvoie à une structure connue.
2. Un ensemble récurrent de techniques de conception
Il est tout à fait possible de concevoir des systèmes sans utiliser les design patterns. Mais après quelques temps, tout concepteur aura découvert de lui-même la plupart des design patterns. Les découvrir en lisant un ouvrage sur le sujet constitue un gain de temps et permet d’éviter les éventuels écueils d’utilisation.
3. Un outil pédagogique de l’approche orientée objet
Les design patterns possèdent également un aspect pédagogique...
Des pratiques bien répandues
Si vous utilisez le framework Symfony, plongez dans ses entrailles et vous verrez que les design patterns sont utilisés à de nombreux endroits :
-
Le distributeur d’événements EventDispatcher combine les design patterns Mediator et Observer.
-
Le gestionnaire de jetons CRSF CrsfTokenManager implémente le design pattern Strategy.
-
Les formulaires sont construits grâce à Builder.
-
Le codage est notamment géré par la fabrique EncoderFactory.
-
MimeTypes s’appuie sur Singleton.
-
HttpCache se sert de Decorator pour venir envelopper le Kernel.
Vous trouverez aussi une grande quantités d’implémentations de Proxy, Adapter, etc. Les design patterns sont partout. Désormais, vous saurez les reconnaître, les utiliser et, qui sait, vous en créerez peut-être de nouveaux !