Maison > interface Web > js tutoriel > le corps du texte

Introduction au modèle de méthode d'usine des modèles de conception JavaScript

PHPz
Libérer: 2018-09-30 09:06:47
original
1493 Les gens l'ont consulté

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
}
Copier après la connexion
3. Créez une classe d'usine :

function SmsSender() {
    this.to = '';
    this.title = '';
    this.content = '';
}

SmsSender.prototype.send = function() {
    //send body
}
Copier après la connexion
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;
}
Copier après la connexion

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

Nous améliorons la classe d'usine ci-dessus :

Méthode d'utilisation :

3. Modèle de méthode d'usine statique
function 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;
}
Copier après la connexion

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

Utilisation :

Description du modèle de méthode Factory

var SendFactory = {
    produceMail : function() {
        return new MailSender();
    },
    produceSms : function() {
        return new SmsSender();
    }
}
Copier après la connexion
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();
Copier après la connexion
Tutoriel vidéo JavaScript

 !

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
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!