Le cœur du modèle de méthode d'usine est que la classe d'usine n'est plus responsable de la création de tous les objets, mais laisse le travail de création spécifique aux sous-classes, devenant ainsi un rôle d'usine abstrait, qui est uniquement responsable de donner des classes d'usine spécifiques. qui doit être implémentée dans l'interface, sans toucher aux détails de la classe de produit qui doit être instanciée, nous pouvons approfondir :
Recommandations associées : "Qu'est-ce qu'un modèle de conception en PHP ? Qu'est-ce qu'un singleton ? Comment l'utiliser ? 》
Factory :
$a = new Dog('abc');
L'interface définit certaines méthodes
La classe qui implémente l'interface implémente ces méthodes
Classe Factory :Utilisé pour instancier des objets
Avantages :Fournit un mécanisme d'expansion dynamique flexible pour la structure du système. Facile à maintenir
Nous utilisons du code pour démontrer ce qu'est le modèle d'usine. Tout d'abord, créons un nouveau fichier. Nous créons une interface dans le fichier. Il y a deux méthodes dans l'interface. cette interface, puis nous devons écrire les deux méthodes que nous venons de définir, puis nous écrivons une classe. Alors, comment pouvons-nous les écrire dans une usine et créer les deux objets que nous avons définis via l'usine ? une classe d'usine, puis dans la classe Écrivez une méthode statique à l'intérieur, puis transmettez-nous un type, puis nous choisissons le type Si notre type est une personne, alors nous créons une personne. Si nous voulons créer un objet humain, il suffit de le créer via une usine. , le code spécifique est le suivant :
<?php interface Skill { function family(); function pome(); } class Person implements Skill { function family() { echo '如果努力有用的话,还要天才干什么<br />'; } function pome() { echo '爱恨痴狂,抵不过沧海一笑'; } } class JingLing implements Skill { function family( ) { echo '为什么会痛苦,一直微笑就好了<br />' ; } function buy() { echo '嘴上说不要,但你的眼睛很诚实嘛<br />'; } } class Factory { static function createHero($type) { switch ($type) { case'person' : return new Person(); break; case'jingling' : return new JingLing(); break; } } } $person = Factory::createHero('person'); $jing = Factory::createHero('jingling');
Ce qui précède est ce que nous appelons le modèle d'usine
Méthode d'usine :
Le cœur du modèle de méthode d'usine est l'usine. La classe n'est plus responsable de la création de tous les objets, mais laisse le travail de création spécifique aux sous-classes, devenant ainsi un rôle d'usine abstrait. responsable de donner l'interface que la classe d'usine spécifique doit implémenter, sans toucher au produit. Les détails de la façon dont une classe doit être instanciée
D'après le code ci-dessus, nous comprenons que notre modèle d'usine est responsable de la création d'objets. .Prenons le code comme exemple : spécifiez une interface, les deux mêmes méthodes, puis nous écrivons deux classes, et la classe d'usine que nous avons établie est uniquement responsable de la spécification de l'interface, et l'implémentation spécifique est laissée à la sous-classe. prenons le code comme exemple :
<?php interface Tell { function pome(); function receive(); } class shiju implements TeLL { function pome( ) { echo '没有心,就不会受伤'; } function receive( ) { echo'守护爱人的心,因恐惧失去而无悔'; } } class HuaWei implements TeLL { function call() { echo '不知道你的名字,但知道你的死期'; } function receive( ) { echo '花有再开的那天,人有重逢的时候吗?'; } } //工厂类只负责规定接口,具体的实现交给子类 interface Factory { static function createPhone( ); } class XiaoFactory implements Factory { static function createPhone( ) return new XiaoMi (); } } class HuaWeiFactory implements Factory { static function createPhone() { return new HUawei(); } }
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!