Le modèle de méthode d'usine PHP est un modèle de création et est l'un des modèles de conception couramment utilisés. Le modèle d'usine est également divisé en modèle d'usine simple, modèle de méthode d'usine, modèle d'usine statique et modèle d'usine abstrait, ainsi que le modèle d'usine PHP. La méthode d'usine consiste à résoudre des problèmes simples d'évolutivité d'usine.
Affiliation : Modèle de création, couramment utilisé L'un des modèles de conception
Le modèle d'usine est divisé en : modèle d'usine simple, modèle de méthode d'usine, modèle d'usine statique et modèle d'usine abstrait.
Ce qui suit est le modèle de méthode d'usine.
La méthode d'usine consiste à résoudre le problème d'évolutivité des usines simples. Je pense que tout le monde trouvera également ses défauts en regardant les usines simples
Dans le passé. , les usines simples ont dû être étendues. Lorsque , vous devez modifier le contenu de l'usine, ce qui viole le principe selon lequel le modèle de conception est ouvert pour l'expansion externe et fermé pour la modification interne, j'ai donc créé un modèle de méthode d'usine.
Éléments impliqués :
Classe d'usine (instancier le produit A)
Classe d'usine (instancier le produit B)
Classe de produit A
Classe de produit B
Un site Web de centre commercial prend en charge plusieurs fonctions de paiement, telles qu'Alipay, WeChat, une certaine banque, une certaine banque... Comment concevoir le programme.
Si vous suivez le modèle d'usine simple et déclarez une classe d'usine et laissez la classe d'usine déterminer le mode de paiement à appeler, alors il doit y avoir une opération de modification continue de la classe d'usine à chaque fois qu'un mode de paiement est utilisé. ajouté, la classe d'usine doit être modifiée. Viole le principe [Ouvert et Fermé]
Problèmes à résoudre :
1. Résoudre le problème du principe [Ouvert et Fermé] de manière simple. usine
L'organigramme est le suivant :
Code de programmation :
1. php
createMode(); // 使用工厂类获取产品类 $mode->doAction($param); // 执行产品类方法
2. Interface de classe d'usine, classe d'usine de paiement Alipay, classe d'usine de paiement WeChat, classe d'usine de paiement UnionPay.
Interface de classe d'usine : PayFactoryInterface.php
Copier après la connexion
Classe d'usine de paiement Alipay : ZhiFuBaoFactory.php
Copier après la connexion
Classe d'usine de paiement WeChat : WeiXinFactory.php
Copier après la connexion
Classe d'usine de paiement UnionPay : YinLianFactory.php
Copier après la connexion
3. Interface de classe de produit, classe de produit de paiement Alipay, classe de produit de paiement WeChat, classe de produit de paiement UnionPay.
Interface produit : PayInterface.php
Copier après la connexion
Catégorie de produit de paiement Alipay : ZhiFuBao.php
Copier après la connexion
Catégorie de produit de paiement WeChat : WeiXin.php
Copier après la connexion
UnionPay Catégorie de produit de paiement : Yinlian.php
Copier après la connexion
Adresse du code source GitHub : https://github.com/xiaobaoword/design_pattern/tree/master
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!