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

Introduction au modèle Singleton des modèles de conception JavaScript

PHPz
Libérer: 2018-09-30 09:12:40
original
1068 Les gens l'ont consulté

Cet article présente principalement le mode singleton du design pattern JavaScript. Le mode singleton est un objet qui a été instancié en accès statique. Cet objet n'est accessible que via une entrée unique, soit déjà instanciée, soit à instancier. de transformation, les amis dans le besoin peuvent s'y référer.

Description du mode monobloc

1. Description : Le mode monobloc est un objet qui a été instancié en accès statique. , cet objet n'est accessible que via une entrée unique, un objet qui a été instancié ou qui doit être instancié ; les langages orientés objet​​tels que Java, .Net C# et d'autres langages dynamiques côté serveur​​ peut garantir que les opérations de classe se déroulent sans problème et éviter le parallélisme. Les opérations peuvent provoquer une confusion des données

2.Avantages du mode singleton :

1) Réduire les nouvelles opérations pour éviter d'accélérer les opérations de mémoire fréquentes et d'occuper celles-ci ; mémoire;
2) , Minimiser la surcharge des objets dans les grands systèmes
3) Comme mentionné ci-dessus, il peut garantir que certains types d'opérations sont effectués dans un ordre précis pour éviter les anomalies de données causées par un traitement parallèle ; 🎜>

Bien sûr. Les avantages mentionnés ci-dessus sont tous en langage côté serveur. Dans un langage faiblement typé comme JavaScript, ne vous inquiétez pas trop, car les scripts sont tous exploités côté client, et il n'y a pas de problème de conflits opérationnels, cela équivaut à être le seul à utiliser l'intégralité du serveur, donc ; ne vous inquiétez pas, votre La question de savoir qui d'autre exploitera les données

Code source de l'instance

var Singleton = {
    instance: null,
    MailSender: function() {
        var self = this;
        self.to = '';
        self.title = '';
        self.content = '';
        self.send = function() {
             //send body
        }
    },
    getInstance : function() {
        if (this.instance == null) {
            this.instance = new Singleton.MailSender();
        }
        return this.instance;
    }
}
Copier après la connexion

Utilisation :

var mail = Singleton.getInstance();
mail.to = 'toname#mail.com';
mail.title = '单件模式发送';
mail.content = '发送内容';

mail.send();
Copier après la connexion
Lorsque certains frameworks globaux, tels que les frameworks d'interface utilisateur riches comme DWZ, créent un Singleton global, Singleton.instance a une valeur, et il n'est pas nécessaire de le créer à nouveau

Bien sûr ; , si c'est écrit comme ça, Ce sera plus clair, et il sera combiné avec le langage côté serveur :

Singleton.getInstance().to = 'toname#mail.com';
Singleton.getInstance().title = '单件模式发送';
Singleton.getInstance().content = '发送内容';

Singleton.getInstance().send();
Copier après la connexion

Autres explications pratiques

Où le mode singleton est-il plus utile ? Par exemple, lorsqu'il existe un fichier de configuration unifié sur le serveur d'exploitation, comme des opérations simultanées à grande échelle et la nécessité de prêter attention à la situation du premier arrivé, premier servi, comme les enregistrements du processus d'opération des échanges, etc. , vous pouvez utiliser le mode monobloc pour fonctionner ;

De plus : Méthode en mode unique :

1 La méthode ci-dessus est appelée méthode paresseuse

2. méthode :

var Singleton = {
    instance : new Singleton.MailSender(),
    MailSender : function() {
      var self = this;
      self.to = '';
      self.title = '';
      self.content = '';
      self.send = function() {
          //send body
      }
   },
   getInstance : function() {
        return this.instance;
   }
}
Copier après la connexion
La méthode d'utilisation est la même ;

Utilisez la méthode de fermeture pour créer le mode singleton et masquer l'objet d'instance

Code :

<🎜. >

var Singleton = (function() {
    var instance = null;
    function MailSender() {
       this.to = &#39;&#39;;
       this.title = &#39;&#39;;
       this.content = &#39;&#39;;
    }
    MailSender.prototype.send = function() {
       //send body
    }
    return {
       getInstance : function() {
          if (instance == null) {
             instance = new MailSender();
          }
          return instance;
       }
    }
})();
Copier après la connexion
2. Utilisation :

Ce qui précède représente l'intégralité du contenu de ce chapitre. Pour plus de didacticiels connexes, veuillez visiter le
//一样用法
var mail = Singleton.getInstance();
mail.to = &#39;toname#mail.com&#39;;
mail.title = &#39;闭包式 单件模式发送&#39;;
mail.content = &#39;发送内容&#39;;

mail.send();
Copier après la connexion
Tutoriel vidéo JavaScript

 !

Étiquettes associées:
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!