Maison  >  Article  >  développement back-end  >  Modèle de conception d'usine PHP

Modèle de conception d'usine PHP

一个新手
一个新手original
2017-09-12 11:23:041079parcourir

1. Factory pattern
est une classe qui possède certaines méthodes qui créent des objets pour vous. Vous pouvez utiliser une classe d'usine pour créer des objets sans utiliser directement new. De cette façon, si vous souhaitez changer le type d’objet créé, il vous suffit de changer d’usine. Tout le code utilisant cette usine est automatiquement modifié.

Le code suivant est un exemple de classe d'usine. Le côté serveur de l'équation se compose de deux parties : une base de données et un ensemble de pages PHP qui vous permettent d'ajouter des commentaires, de demander une liste de commentaires et d'obtenir des articles liés à un retour spécifique.

L'interface IUser définit les opérations que l'objet utilisateur doit effectuer :

interface IUser
{  function getName();
}

L'implémentation de IUser est appelée User :

class User implements IUser
{  public function __construct( $id ) { } 
  public function getName()
  {    return "Jack";
  }
}

La classe d'usine UserFactory crée le Objet IUser :

class UserFactory
{  public static function Create( $id )
  {    return new User( $id );
  }
}

Le code de test demandera l'objet User à l'usine et affichera le résultat de la méthode getName :

$pr = UserFactory::Create( 1 );echo( $pr->getName()."\n" );

Il existe une variante de le modèle d'usine qui utilise des méthodes d'usine. Ces méthodes statiques publiques dans une classe construisent des objets de ce type. Cette méthode est utile s'il est important de créer des objets de ce type. Par exemple, supposons que vous deviez créer un objet, puis définir un certain nombre de propriétés. Cette version du modèle d'usine encapsule le processus dans un seul emplacement, vous n'avez donc pas besoin de copier un code d'initialisation complexe et de le coller partout dans la base de code.

interface IUser //接口{  function getName();
} 
class User implements IUser
{  public static function Load( $id ) //静态函数  {        return new User( $id );
  }  public static function Create( ) //静态函数  {        return new User( null );
  }  public function __construct( $id ) { }//构造函数
  public function getName()
  {    return "Jack";
  }
} 
$uo = User::Load( 1 );echo( $uo->getName()."\n" );

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