1. mode d'usine simple
Description: Il s'agit de créer une classe d'usine, qui met en œuvre la création de la classe d'implémentation pour la même interface.
Mais il semble que JavaScript n'a pas de numéro d'interface, nous supprimons donc la couche d'interface; Bien sûr, les variables et les méthodes des membres de notre classe de mise en œuvre devraient être les mêmes;
Par exemple: pour le moment, vous pouvez donner un exemple d'envoi de messages texte et d'envoi de courriels;
1>. Classe d'envoi de messagerie [implémentation]
La copie de code est la suivante:
fonction MailSender () {
this.to = '';
this.title = '';
this.Content = '';
}
MailSender.prototype.Send = function () {
// Envoi du corps
}
2>. Classe SMS Envoi [implémentation]
La copie de code est la suivante:
fonction SMSSender () {
this.to = '';
this.title = '';
this.Content = '';
}
SmsSender.prototype.Send = function () {
// Envoi du corps
}
3>. Créer une classe d'usine:
La copie de code est la suivante:
fonction sendFactory () {
this.Sender = null;
}
Sendfactory.prototype.produce = fonction (type) {
var me = ceci;
if (type == 'mail') {
Me.Sender = new MailSender ();
} else if (type == 'sms') {
me.Sender = new smsSender ();
}
Renvoyez-moi.Sender;
}
4>. Utilisez cette classe d'usine:
La copie de code est la suivante:
var factory = new SendFactory ();
var Sender = factory.produce ('mail'); // SMS
Sender.to = 'Toname # Mail.com';
Sender.Title = 'Mail Test Title!';
Sender.Content = 'Send Content';
Sender.Send ();
2. Mode de méthode d'usine multiple
Remarque: plusieurs méthodes de mode d'usine sont une amélioration des méthodes d'usine ordinaires, car l'implémentation de retour est basée sur les caractères passés. Lorsque l'entrée de caractères est incorrecte, elle peut ne pas être traitée ou traitée dans une erreur; tandis que plusieurs méthodes de mode d'usine peuvent éviter de telles erreurs;
Nous avons apporté des améliorations à la classe d'usine ci-dessus:
La copie de code est la suivante:
fonction sendFactory () {
this.Sender = null;
}
Sendfactory.prototype.producemail = function () {
var me = ceci;
Me.Sender = new MailSender ();
Renvoyez-moi.Sender;
}
Sendfactory.prototype.producesms = function () {
var me = ceci;
me.Sender = new smsSender ();
Renvoyez-moi.Sender;
}
Comment utiliser:
La copie de code est la suivante:
var factory = new SendFactory ();
var Sender = factory.producesms (); // produmail
Sender.to = 'toname # xxxxx';
Sender.Title = 'SMS Envoi de la méthode Title';
Sender.Content = 'Send Content';
Sender.Send ();
3. Mode de méthode d'usine statique
Remarque: Modifiez les méthodes de mode de méthode d'usine ci-dessus plusieurs en identification statique afin qu'il n'y ait pas besoin d'instancier SendFactory;
Modifiez le code d'usine comme suit:
La copie de code est la suivante:
var sendfactory = {
productEmail: function () {
retourner new MailSender ();
},
produisms: function () {
retourner de nouveaux smsSender ();
}
}
Comment utiliser:
La copie de code est la suivante:
var Sender = SendFactory.produdEmail ();
Sender.to = 'Toname # Mail.com';
Sender.Title = 'Mail Send Title';
Sender.Content = 'Send Content';
Sender.Send ();
Description du modèle de méthode d'usine
Dans la description de la programmation de réflexion orientée objet, lorsqu'il existe de nombreux produits (modèles réels, noms: noms de classe, attributs membres et méthodes de fonctionnement, etc.) qui doivent être initialisés, c'est-à-dire le produit doit être créé et [lors de l'implémentation de la même interface], le mode de méthode d'usine peut être utilisé; Le premier mode a la possibilité d'une erreur de type d'entrée, et le deuxième mode, lorsqu'il est nécessaire, l'instance d'usine est créée;