Quand vous pensez à une usine, à quoi pensez-vous? Pour moi, c'est un endroit où les choses sont créées - c'est-à-dire un endroit centralisé où les choses sont produites. Plus tard, la livraison desdits produits est effectuée par l’usine sur la base d’une commande..
Disons que vous demandez une voiture. Une usine en créera une en fonction des spécifications de l'ordre de travail et la livrera ensuite une fois terminée..
Tout comme leurs homologues du monde réel, une fabrique de logiciels (c'est-à-dire un logiciel qui implémente le modèle de conception d'usine) est un objet responsable de la création et de la diffusion d'autres objets en fonction de paramètres entrants..
Il existe trois variantes du modèle d'usine:
Supposons que vous ayez une classe de voiture contenant toutes les propriétés et méthodes pertinentes pour une automobile. Dans sa forme la plus élémentaire, vous le créeriez comme ceci:
$ voiture = voiture neuve ();
Immédiatement, avec le temps, il faut modifier quelque peu la manière dont l’objet Car est créé. Nous devons créer des objets de classe basés sur le type de panier plutôt que sur la voiture. Vous devez donc apporter des modifications à tous les endroits où vous avez créé un objet de cette classe Car..
Mais, avec le temps, il faudra inévitablement modifier la manière dont l'objet Car est créé. Par exemple, nous devons créer des classes basées sur une voiture type plutôt que juste voiture. En tant que tel
Au lieu de cela, il serait préférable de créer une classe qui implémente le modèle Factory..
Dans la section précédente, nous avons reconnu la création d’un objet de type voiture à l’aide de la Nouveau
mot-clé. Et plus tard, il est décidé de créer un objet de la classe Car, mais basé sur le type de voiture comme Sedan, SUV, etc..
Soit nous devons placer le code de création de classe de type de voiture partout où cela est nécessaire ou mettre en œuvre Factory pour le gérer efficacement. Veuillez vous référer au bloc de code ci-dessous qui montre la mise en œuvre du modèle d'usine simple..
Dans la classe ci-dessus, vous pouvez voir que nous avons une méthode statique disponible qui est chargée de créer l'objet en fonction du type que vous passez. Nous avons maintenant besoin de classes concrètes de différents types de voitures, comme celles énumérées ci-dessous:
À ce stade, nous avons notre classe d’usine et notre classe de béton prêtes à être utilisées. Nous allons donc nous entraîner à la création d’objets de type voiture..
// Création d'une nouvelle berline $ sedan = carFactory :: build ('berline'); // Création d'un nouveau SUV $ suv = carFactory :: build ('suv');Ajout de nouvelle classe
L'ajout d'une nouvelle classe est simple: créez une classe concrète et vous êtes prêt. Par exemple:
Conclusion
En ce qui concerne le modèle d’usine, envisagez l’utilisation de
Nouveau
mot-clé pour créer un nouvel objet nuisible. L'usine nous permet d'avoir un emplacement centralisé et tous nos objets sont créés.