Maison > développement back-end > tutoriel php > Explication détaillée des modèles de conception d'usine courants en PHP

Explication détaillée des modèles de conception d'usine courants en PHP

黄舟
Libérer: 2023-03-15 14:22:02
original
1269 Les gens l'ont consulté

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();
}
Copier après la connexion

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


class User implements IUser
{  public function __construct( $id ) { } 
  public function getName()
  {    return "Jack";
  }
}
Copier après la connexion

La classe d'usine UserFactory crée l'objet IUser :


class UserFactory
{  public static function Create( $id )
  {    return new User( $id );
  }
}
Copier après la connexion

Le code de test demandera l'objet User à l'usine et la sortie getName Résultat de la méthode :


$pr = UserFactory::Create( 1 );echo( $pr->getName()."\n" );
Copier après la connexion

Il existe une variante du modèle d'usine qui utilise des méthodes d'usine. Ces méthodes statiques publiques d’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" );
Copier après la connexion

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!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal