Explication détaillée du modèle d'usine simple de PHP
Cet article partage principalement avec vous une explication détaillée du mode usine simple de PHP. Il a une bonne valeur de référence et j'espère qu'il sera utile à tout le monde. Suivons l’éditeur et jetons un coup d’œil.
1. Définition d'une usine simple
Fournit une fonction pour créer des instances d'objet sans avoir à se soucier de ses spécificités. Implementation , le type de l'instance créée peut être une interface, une classe abstraite ou une classe concrète.
2. La structure et description d'une usine simple
La structure d'une usine simple est la suivante :
Api : Définir l'interface fonctionnelle requise par les clients
-
Impl : Implémenter spécifiquement la classe d'implémentation d'Api, il peut y en avoir plusieurs
Factory : Factory, sélectionnez la classe d'implémentation appropriée pour créer l'objet d'interface Api
Client : Client, obtenez l'objet d'interface Api via Factory, puis programme pour l'interface Api
Interface Api :
/** * 接口的定义,该接口可以通过简单工厂来创建 * * @author Administrator * */ public interface Api { /** * 具体功能方法的定义 * * @param s * 需要的参数 */ public void operation(String s); }
ImplA :
/** * 接口的具体实现对象A * * @author Administrator * */ public class ImplA implements Api { @Override public void operation(String s) { // 实现的功能 System.out.println("ImplA s==" + s); } }
ImplB :
/** * 接口的具体实现对象B * * @author Administrator * */ public class ImplB implements Api { @Override public void operation(String s) { // 实现的功能 System.out.println("ImplB s==" + s); } }
Usine :
/** * 工厂类,用来创建Api对象 * * @author Administrator * */ public class Factory { /** * 具体创建Api对象的方法 * * @param condition * 从外部传入的选择条件 * @return */ public static Api createApi(int condition) { // 应该根据某些条件去选择究竟创建哪一个具体的实现对象 // 这些条件可以从外部传入,也可以从其他途径获取 // 如果只有一个实现,可以省略条件 Api api = null; if (condition == 1) { api = new ImplA(); } else if (condition == 2) { api = new ImplB(); } return api; } }
Classe de test Client :
public class Client { public static void main(String[] args) { // 通过简单工厂来获取接口对象 Api api = Factory.createApi(1); api.operation("正在使用简单工厂模式"); } }
Schéma d'usine simple de la séquence d'appel :
Suggestions de noms pour les usines simples :
La suggestion de nom de classe est "nom du module+Factory". Par exemple, la fabrique du module utilisateur s'appelle UserFactory
Le nom de la méthode est généralement "get+nom de l'interface" ou "create+nom de l'interface". Par exemple, si le nom de l'interface utilisateur est UserEbi, le nom de la méthode est généralement getUserEbi ou createUserEbi.
La fonction interne principale d'une méthode de fabrique simple est "Sélectionner la classe d'implémentation appropriée ", la condition de sélection ou la source du Le paramètre est généralement pour la concentration suivante :
vient du client, et les paramètres sont transmis par le client
vient du client. fichier de configuration, et est obtenu à partir du fichier de configuration. La valeur jugée
provient d'une certaine valeur pendant l'exécution du programme, comme l'obtention d'une certaine valeur d'exécution à partir du cache
Avantages de l'usine simple :
Aide à l'encapsulation
Simple Factory est simple, mais très convivial. Elle nous aide à réaliser l'encapsulation des composants, puis permet à l'extérieur des composants d'effectuer une programmation véritablement orientée interface.
2. Découplage
Grâce à une simple usine, le client et la classe d'implémentation spécifique sont découplés.
Inconvénients de l'usine simple :
1 Peut augmenter la complexité du client
2. -usines
L'essence d'une usine simple : choisir de mettre en œuvre
Quand choisir une usine simple :
Si vous souhaitez encapsuler et isoler complètement l'implémentation spécifique, afin que l'extérieur ne puisse faire fonctionner le package que via l'interface, vous pouvez alors choisir une usine simple et laissez le client obtenir l'interface correspondante via l'usine sans se soucier de sa mise en œuvre spécifique.
Si vous souhaitez gérer et contrôler de manière centralisée les responsabilités de création d'objets externes, vous pouvez choisir une usine simple.
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!

Outils d'IA chauds

Undresser.AI Undress
Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover
Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool
Images de déshabillage gratuites

Clothoff.io
Dissolvant de vêtements AI

AI Hentai Generator
Générez AI Hentai gratuitement.

Article chaud

Outils chauds

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

SublimeText3 version Mac
Logiciel d'édition de code au niveau de Dieu (SublimeText3)

PHP 8.4 apporte plusieurs nouvelles fonctionnalités, améliorations de sécurité et de performances avec une bonne quantité de dépréciations et de suppressions de fonctionnalités. Ce guide explique comment installer PHP 8.4 ou mettre à niveau vers PHP 8.4 sur Ubuntu, Debian ou leurs dérivés. Bien qu'il soit possible de compiler PHP à partir des sources, son installation à partir d'un référentiel APT comme expliqué ci-dessous est souvent plus rapide et plus sécurisée car ces référentiels fourniront les dernières corrections de bogues et mises à jour de sécurité à l'avenir.

CakePHP est un framework open source pour PHP. Il vise à faciliter grandement le développement, le déploiement et la maintenance d'applications. CakePHP est basé sur une architecture de type MVC à la fois puissante et facile à appréhender. Modèles, vues et contrôleurs gu

Pour travailler sur le téléchargement de fichiers, nous allons utiliser l'assistant de formulaire. Voici un exemple de téléchargement de fichiers.

Visual Studio Code, également connu sous le nom de VS Code, est un éditeur de code source gratuit – ou environnement de développement intégré (IDE) – disponible pour tous les principaux systèmes d'exploitation. Avec une large collection d'extensions pour de nombreux langages de programmation, VS Code peut être c

CakePHP est un framework MVC open source. Cela facilite grandement le développement, le déploiement et la maintenance des applications. CakePHP dispose d'un certain nombre de bibliothèques pour réduire la surcharge des tâches les plus courantes.

Ce tutoriel montre comment traiter efficacement les documents XML à l'aide de PHP. XML (Language de balisage extensible) est un langage de balisage basé sur le texte polyvalent conçu à la fois pour la lisibilité humaine et l'analyse de la machine. Il est couramment utilisé pour le stockage de données et

Une chaîne est une séquence de caractères, y compris des lettres, des nombres et des symboles. Ce tutoriel apprendra à calculer le nombre de voyelles dans une chaîne donnée en PHP en utilisant différentes méthodes. Les voyelles en anglais sont a, e, i, o, u, et elles peuvent être en majuscules ou en minuscules. Qu'est-ce qu'une voyelle? Les voyelles sont des caractères alphabétiques qui représentent une prononciation spécifique. Il y a cinq voyelles en anglais, y compris les majuscules et les minuscules: a, e, i, o, u Exemple 1 Entrée: String = "TutorialSpoint" Sortie: 6 expliquer Les voyelles dans la chaîne "TutorialSpoint" sont u, o, i, a, o, i. Il y a 6 yuans au total

JWT est une norme ouverte basée sur JSON, utilisée pour transmettre en toute sécurité des informations entre les parties, principalement pour l'authentification de l'identité et l'échange d'informations. 1. JWT se compose de trois parties: en-tête, charge utile et signature. 2. Le principe de travail de JWT comprend trois étapes: la génération de JWT, la vérification de la charge utile JWT et l'analyse. 3. Lorsque vous utilisez JWT pour l'authentification en PHP, JWT peut être généré et vérifié, et les informations sur le rôle et l'autorisation des utilisateurs peuvent être incluses dans l'utilisation avancée. 4. Les erreurs courantes incluent une défaillance de vérification de signature, l'expiration des jetons et la charge utile surdimensionnée. Les compétences de débogage incluent l'utilisation des outils de débogage et de l'exploitation forestière. 5. L'optimisation des performances et les meilleures pratiques incluent l'utilisation des algorithmes de signature appropriés, la définition des périodes de validité raisonnablement,
