Maison  >  Article  >  développement back-end  >  Analyse des avantages de l'utilisation du modèle d'usine php

Analyse des avantages de l'utilisation du modèle d'usine php

黄舟
黄舟original
2017-11-13 14:42:561565parcourir

Nous vous avons présenté trois types de phpMode usine auparavant, ainsi que ce qu'est le mode usine php et pourquoi nous devrions utiliser le mode usine php. Aujourd'hui, nous allons donc vous donner une introduction détaillée à php. usine. Avantages de l’utilisation de modèles !

Généralement, lorsque nous instancions une classe, nous lui donnons certains paramètres afin que lors de sa construction, nous puissions renvoyer les résultats dont nous avons besoin en fonction de différents paramètres.
Par exemple, ce qui suit est une classe User, qui est très simple :

Le code est le suivant :

<?php
interface IUser{
   function getName();
   function getAge();
}
class User implements IUser{
   protected $_name;
   protected $_age;
   function construct($name, $age){
      $this->_name = $name;
      $this->_age = (int)$age;
   }
   function getName(){
      return $this->_name;
   }
  function getAge(){
      return $this->_age;
   }
}
?>

Si nous Pour instancier cette classe, vous devez faire ceci :
$u = new User('Xiao Ming',19);
Généralement si cette classe est rarement utilisée, alors comme ça, cela n'a pas beaucoup d'impact et c'est très bien.
Du coup, je veux ajouter une classification à cette classe et mettre Xiao Ming dans le groupe d'étudiants. Il est très facile de modifier le code du cours suivant, mais si cette classe est instanciée plusieurs fois dans de nombreux fichiers avant de le vouloir. modifiez-le, il devient alors très fastidieux d'y ajouter un paramètre, car il faut le remplacer par :
$u = new User('Xiaoming',19,'student');
Bien sûr, nous pouvons également éviter cette duplication de travail en définissant des valeurs par défaut dans la fonction construct , mais en fait, ce n'est pas bon du point de vue de l'élégance du code Imaginez. nous avons une méthode factory qui peut En utilisant un identifiant pour correspondre à un ensemble de paramètres, et en stockant les paramètres dans un document texte ou directement dans la classe factory sous la forme d'un tableau, ce sera plus simple lorsque nous appelons la classe User. Beaucoup, même si vous devez augmenter ou diminuer les paramètres attributs , vous n'avez pas besoin de remplacer le code partout. Ce qui suit est une classe d'usine (vous pouvez également stocker la méthode. directement dans la classe User)

code Comme suit :

interface IUser{
    function getName();
    function getAge();
}
class User implements IUser{
   protected $_group;
   protected $_name;
   protected $_age;
  function construct($name, $age, $group){
      $this->_group = $group;
      $this->_name = $name;
      $this->_age = (int)$age;
  }
  function getName(){
     return $this->_name;
  }
  function getAge(){
      return $this->_age;
  }
}
class Fuser{
   private static $group = array(
       array(‘小明‘,19,‘学生‘),
       array(‘小王‘,19,‘学生‘)
   );
   static function create($id){
      list($name, $age, $group) = self::$group[(int)$id];
      return new User($name, $age, $group);
   }
}
echo Fuser::create(0)->getName();

Le résultat doit être "Xiao Ming".

Résumé :

Je crois que mes amis ont une certaine compréhension des avantages de l'utilisation du mode usine PHP. en pratique dans votre propre travail !

Recommandations associées :

Une brève introduction aux trois modes d'usine php


Qu'est-ce que le modèle de fabrique php ? Pourquoi utiliser le mode usine php ?


Explication détaillée des trois formes d'exemple de code du modèle d'usine 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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Article précédent:Vingt frameworks PHP puissantsArticle suivant:Vingt frameworks PHP puissants