Avant-propos
Introduction
Le présent ouvrage a été conçu comme une présentation simple et efficace des vingt-trois modèles de conception qui furent étudiés en 1994 dans le livre « Design Patterns - Elements of Reusable Object Oriented Software » écrit par Erich Gamma, Richard Helm, Ralph Johnson et John Vlissides. Ce collectif de quatre auteurs, surnommé le « Gang of Four » (la bande des quatre) a fini par donner son nom à une catégorie de design patterns, voilà pourquoi il arrive fréquemment que l’on fasse référence dans la littérature spécialisée aux « patterns GoF ».
Un design pattern, ou modèle de conception en français, constitue une solution à un problème récurrent de conception en programmation orientée objet (POO). L’auteur présente chaque design pattern GoF en décrivant le problème correspondant, la solution apportée par le design pattern et sa structure générique à l’aide d’un ou de plusieurs diagrammes UML et ses domaines d’application. La solution est approfondie sous la forme d’un programme écrit en PHP qui montre une mise en œuvre du design pattern.
« Design Patterns en PHP » s’adresse aux concepteurs et aux développeurs pratiquant régulièrement la programmation orientée objet pour réaliser des applications s’appuyant sur des solutions éprouvées et robustes et pour améliorer la qualité et assurer l’évolutivité des logiciels qu’ils élaborent.
Le but de cet ouvrage est double : d’abord, de permettre au lecteur d’acquérir une connaissance des éléments essentiels des vingt-trois design patterns GoF, notamment leur structure générique sous forme d’un diagramme de classes UML. Le lecteur peut ensuite affiner ses connaissances en examinant les exemples de mise en œuvre écrits en PHP, en étudiant les compositions et variantes de design patterns décrites dans le chapitre correspondant, ainsi que le design pattern composite MVC, et en réalisant les exercices de l’annexe. L’autre objectif est que le lecteur profite de l’étude des design patterns pour améliorer sa maîtrise des principes de la programmation orientée objet comme le polymorphisme, l’héritage, l’encapsulation ou encore l’abstraction.
Le présent ouvrage est structuré en trois grandes parties respectant la classification des design patterns telle qu’elle fut décrite dans le livre du Gang of Four :
-
Les design patterns de création ont pour objectif l’abstraction des mécanismes de construction d’objets. Les mécanismes d’instanciation des classes concrètes sont encapsulés au sein des design patterns. En cas de modification de l’ensemble des classes concrètes à instancier, les modifications à apporter dans le système seront peu nombreuses, voire inexistantes.
-
Les design patterns structurels ont pour but d’abstraire l’interface d’un objet ou d’un ensemble d’objets de son implémentation. Dans le cas d’un ensemble d’objets, l’objectif est aussi d’abstraire...