Blog ENI : Toute la veille numérique !
Accès illimité 24h/24 à tous nos livres & vidéos ! 
Découvrez la Bibliothèque Numérique ENI. Cliquez ici
💥 Du 22 au 24 novembre : Accès 100% GRATUIT
à la Bibliothèque Numérique ENI. Je m'inscris !
  1. Livres et vidéos
  2. Design Patterns en PHP
  3. Les design patterns dans la conception de logiciels
Extrait - Design Patterns en PHP Les 23 modèles de conception : descriptions et solutions illustrées en UML2 et PHP (2e édition)
Extraits du livre
Design Patterns en PHP Les 23 modèles de conception : descriptions et solutions illustrées en UML2 et PHP (2e édition)
2 avis
Revenir à la page d'achat du livre

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.

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 !