Maison >interface Web >js tutoriel >Introduction au modèle de méthode d'usine des modèles de conception JavaScript
Cet article présente principalement l'introduction du modèle de méthode d'usine dans les modèles de conception JavaScript. Cet article explique le modèle d'usine simple, les modèles de méthodes d'usine multiples, etc. Les amis dans le besoin peuvent s'y référer
1. Modèle d'usine simple
Explication : Il s'agit de créer une classe d'usine, qui implémente la création de classes d'implémentation pour la même interface.
Mais il semble que JavaScript n'ait pas d'interface, nous supprimons donc la couche d'interface ; bien sûr, les variables et méthodes membres de notre classe d'implémentation devraient être les mêmes ; >Par exemple : Voici des exemples d'envoi de SMS et d'envoi d'e-mails ;
1 Classe d'envoi d'e-mails [implémentation]
2. 🎜>function MailSender() { this.to = ''; this.title = ''; this.content = ''; } MailSender.prototype.send = function() { //send body }3. Créez une classe d'usine :
function SmsSender() { this.to = ''; this.title = ''; this.content = ''; } SmsSender.prototype.send = function() { //send body }4. Utilisez cette classe d'usine :
function SendFactory() { this.sender = null; } SendFactory.prototype.produce = function(type) { var me = this; if (type == 'mail') { me.sender = new MailSender(); } else if (type == 'sms') { me.sender = new SmsSender(); } return me.sender; }
2. 🎜>
Explication : plusieurs méthodes en mode usine constituent une amélioration par rapport aux méthodes d'usine ordinaires, car l'implémentation du retour est basée sur les caractères transmis. Lorsque les caractères sont saisis de manière incorrecte, ils peuvent ne pas être traités, ou ils peuvent être traités dans dans le mauvais sens ; et plusieurs méthodes de modèles d'usine peuvent éviter de telles erreurs ;var factory = new SendFactory(); var sender = factory.produce('mail'); //sms sender.to = 'toName#mail.com'; sender.title = '邮件测试标题!'; sender.content = '发送内容'; sender.send();
Nous améliorons la classe d'usine ci-dessus :
Méthode d'utilisation : 3. Modèle de méthode d'usine statiquefunction SendFactory() { this.sender = null; } SendFactory.prototype.produceMail = function() { var me = this; me.sender = new MailSender(); return me.sender; } SendFactory.prototype.produceSms = function() { var me = this; me.sender = new SmsSender(); return me.sender; }Description : remplacez simplement les méthodes des multiples modèles de méthodes d'usine ci-dessus par des identifiants statiques, afin qu'ils n'aient pas besoin d'instancier SendFactory ; Le code de la classe factory est modifié comme suit :
var factory = new SendFactory(); var sender = factory.produceSms(); //produceMail sender.to = 'toName#xxxxx'; sender.title = '短信发送方法标题'; sender.content = '发送内容'; sender.send();
Utilisation :
Description du modèle de méthode Factoryvar SendFactory = { produceMail : function() { return new MailSender(); }, produceSms : function() { return new SmsSender(); } }Instructions sur l'orientation objet programmation, Lorsqu'il existe de nombreux produits (modèles du monde réel, noms : noms de classe, attributs de membre, méthodes de fonctionnement, etc.) qui doivent être initialisés, c'est-à-dire que les produits doivent être créés et [implémenter la même interface], vous pouvez utilisez le modèle de méthode d'usine ; le premier modèle a Il est possible que le type d'entrée soit incorrect. Dans le deuxième mode, une instance d'usine est créée si nécessaire Ce qui précède est tout le contenu de ce chapitre. pour plus de didacticiels connexes, veuillez visiter le
var sender = SendFactory.produceMail(); sender.to = 'toName#mail.com'; sender.title = '邮件发送标题'; sender.content = '发送内容'; sender.send();Tutoriel vidéo JavaScript
!