Le Design Pattern Factory en PHP est un modèle de conception utilisé pour créer des objets sans spécifier explicitement la classe de l’objet à créer. Il fournit une interface générique pour créer des objets dans une hiérarchie de classes. Il permet aussi à ses sous-classes de modifier le type d’objets créés.
Exemple Abtrait
Voici un exemple simple du Design Pattern Factory en PHP :
Supposons que nous ayons une classe ShapeFactory
qui est responsable de créer des formes géométriques telles que des cercles et des carrés. Cette classe dispose d’une méthode createShape
qui prend un paramètre pour spécifier le type de forme à créer. En fonction du type de forme spécifié, la méthode retournera une instance de la classe correspondante.
Dans cet exemple, la classe ShapeFactory
agit comme une usine qui produit des formes géométriques. En fonction du type de forme passé à la méthode createShape
, elle instancie et renvoie un objet de la classe correspondante (Circle
ou Square
). Cela permet de déléguer la création d’objets à une classe dédiée, ce qui rend le code plus modulaire et extensible.
Exemple plus concret
Imaginons que nous développons une application de gestion de contenu. Différents types de médias doivent être manipulés, tels que des images, des vidéos et des documents. Chaque type de média nécessite un traitement spécifique lors de son chargement, de son affichage ou de son stockage.
Dans ce scénario, le Design Pattern Factory en PHP peut être utilisé pour créer une usine de médias qui produit des objets médias en fonction du type de média spécifié.
Voici un exemple plus concret :
Supposons que nous ayons une classe MediaFactory
qui est responsable de créer des objets médias tels que des images, des vidéos et des documents. Cette classe dispose d’une méthode createMedia
qui prend un paramètre pour spécifier le type de média à créer. En fonction du type de média spécifié, la méthode retournera une instance de la classe correspondante, avec des fonctionnalités spécifiques à ce type de média.
Dans cet exemple concret, la classe MediaFactory
agit comme une usine qui produit différents types de médias en fonction du type de média passé à la méthode createMedia
. Cela permet de centraliser la logique de création d’objets médias dans une seule classe. Cela rend le code plus modulaire, extensible et facile à maintenir.
Conclusion
- Le Design Pattern Factory en PHP permet de créer des objets sans spécifier explicitement leur classe, en utilisant une interface commune.
- Il favorise la modularité, l’extensibilité et la réutilisabilité du code en déléguant la création d’objets à une classe dédiée.
- Cela facilite également la gestion des dépendances en permettant de centraliser la logique de création d’objets dans une seule classe.
Liens Externes
- Factory Method in PHP par refactoring.guru
- Factory Method à designpatternsphp.readthedocs.io
Ping : le Design Pattern Strategy en PHP - Portfolio Guillaume RICHARD
Ping : le Design Pattern Builder en PHP - Portfolio Guillaume RICHARD