Maison >développement back-end >tutoriel php >Quel est le rôle du modèle de fabrique de modèles de conception PHP ?

Quel est le rôle du modèle de fabrique de modèles de conception PHP ?

黄舟
黄舟original
2017-11-13 15:03:593283parcourir

Nous vous avons présenté les avantages du mode usine de php, la signification du mode usine et les trois situations du mode usine. Nous allons donc aujourd'hui continuer à vous présenter le rôle du mode usine de php. !

Les modèles d'usine sont divisés en trois types : usine simple, méthode d'usine et usine abstraite. La différence entre les trois types d'usines est que l'usine abstraite a plusieurs lignes de produits, tandis que la méthode d'usine n'a qu'un seul produit. line, qui est une simplification de la fabrique abstraite. La méthode factory est opposée à la méthode factory simple. À première vue, il semble que la méthode factory ajoute beaucoup de code mais implémente les mêmes fonctions que la méthode factory simple. Mais l'essentiel est que l'usine simple ne suit pas strictement le principe d'ouverture et de fermeture du

modèle de conception Lorsque de nouveaux produits doivent être ajoutés, le code de l'usine doit également être modifié. Cependant, la méthode d'usine adhère strictement au principe d'ouverture et de fermeture. Le mode n'est responsable que de l'interface d'usine abstraite, et l'extension de l'usine spécifique est laissée au client. Lors de la division du travail, les ingénieurs de base sont responsables de la définition des usines abstraites et des produits abstraits, et les ingénieurs commerciaux sont responsables de la mise en œuvre d'usines et de produits spécifiques. Tant que la couche d’abstraction est bien conçue, le framework est très stable.

Simple Factory

Avantages : les utilisateurs de produits n'ont pas besoin de se soucier du processus de création des classes de produits et obtiennent un effet de découplage des classes de mise en œuvre de produits spécifiques » (OCP) ; ), car lors de l'ajout d'une nouvelle classe de produits, la méthode d'usine d'origine doit être modifiée

occasions applicables : lorsque la classe d'usine est responsable de la création de moins de

objets que

 ;

Méthode d'implémentation : définir une classe commune simple, définir une méthode de production statique et générer la classe parent spécifique correspondante en fonction du paramètre de type transmis

Le code spécifique est le suivant

<?php//抽象产品interface Person {
    public function getName(); }//具体产品实现class Teacher implements Person {
    public function getName() {
        return "老师n";
    }}class Student implements Person {
    public function getName() {
        return "学生n";
    }}//简单工厂class SimpleFactory {
    public static function getPerson($type) {
      $person = null;
      if ($type == &#39;teacher&#39;) {
        $person = new Teacher();
      } elseif ($type == &#39;student&#39;) {
        $person = new Student();
      }
      return $person;
    }}//简单工厂调用class SimpleClient {
    function main() {
      // 如果不用工厂模式,则需要提前指定具体类
      // $person = new Teacher();
      // echo $person->getName();
      // $person = new Student();
      // echo $person->getName();

      // 用工厂模式,则不需要知道对象由什么类产生,交给工厂去决定
      $person = SimpleFactory::getPerson(&#39;teacher&#39;);
      echo $person->getName();
      $person = SimpleFactory::getPerson(&#39;student&#39;);
      echo $person->getName();
    }}
Résumé :

Grâce à l'étude de cet article, je crois que tout le monde a une nouvelle conception du rôle du modèle d'usine PHP, je l'espère. sera utile à votre travail. ~

Recommandations associées :

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


Une brève introduction aux trois modèles de fabrique PHP


Qu'est-ce que le modèle de fabrique PHP ? Pourquoi utiliser le mode 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