L'avantage du modèle de méthode d'usine PHP est que la classe principale n'a besoin de prêter attention qu'à l'interface de la classe d'usine et que des instances de produit spécifiques sont créées par des sous-classes d'usine spécifiques. Dans ce mode, en définissant une classe d'usine de base abstraite et en définissant l'interface de création de produits, le travail de création d'instances de produit spécifiques est reporté à ses sous-classes d'usine.
L'environnement d'exploitation de cet article : système Windows 10, PHP version 7.1, ordinateur Dell G3.
Dans ce modèle, en définissant une classe d'usine de base abstraite et en définissant une interface pour créer des objets de produit, le travail de création d'instances de produit spécifiques est reporté à ses sous-classes d'usine.
L'avantage de ceci est que la classe principale se concentre uniquement sur la définition de l'interface de la classe d'usine et que les instances de produit spécifiques sont laissées à la sous-classe d'usine spécifique pour qu'elles soient créées. Lorsque le système doit ajouter un nouveau produit, il n'est pas nécessaire de modifier le code système existant. Il suffit d'ajouter une classe de produit spécifique et sa sous-classe d'usine correspondante. Cela rend le système plus évolutif et conforme au principe d'ouverture et de fermeture. de programmation orientée objet.
<?php interface Animal{ public function run(); public function say(); } class Cat implements Animal { public function run(){ echo "I ran slowly <br>"; } public function say(){ echo "I am Cat class <br>"; } } class Dog implements Animal { public function run(){ echo "I'm running fast <br>"; } public function say(){ echo "I am Dog class <br>"; } } abstract class Factory{ abstract static function createAnimal(); } class CatFactory extends Factory { public static function createAnimal() { return new Cat(); } } class DogFactory extends Factory { public static function createAnimal() { return new Dog(); } } $cat = CatFactory::createAnimal(); $cat->say(); $cat->run(); $dog = DogFactory::createAnimal(); $dog->say(); $dog->run();
Le modèle de méthode d'usine est une abstraction et une promotion supplémentaires du modèle d'usine simple. Grâce à l'utilisation du polymorphisme orienté objet, le modèle de méthode d'usine conserve les avantages du modèle d'usine simple et surmonte ses inconvénients. Dans le modèle de méthode d'usine, la classe d'usine principale n'est plus responsable de la création de tous les produits, mais laisse le travail de création spécifique aux sous-classes.
Cette classe principale est uniquement responsable de fournir l'interface qu'une usine spécifique doit implémenter, et n'est pas responsable des détails de la façon dont la classe de produit est instanciée. Cela permet au modèle de méthode d'usine de permettre au système d'introduire de nouveaux produits sans modification. le rôle de l'usine.
Apprentissage recommandé : "Tutoriel vidéo PHP"
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!