Comment implémenter un modèle singleton à l'aide de JavaScript

PHPz
Libérer: 2023-04-26 15:15:55
original
789 Les gens l'ont consulté

En JavaScript, le modèle singleton est un modèle de conception très courant. Dans le développement réel, le modèle singleton est souvent utilisé pour limiter le nombre d'instanciations d'une classe et garantir qu'il n'y a qu'une seule instance globalement. Dans cet article, nous présenterons comment implémenter le modèle singleton à l'aide de JavaScript.

Le modèle singleton signifie que chaque classe ne peut avoir qu'une seule instance. Il s'agit d'un modèle de création d'objet utilisé pour garantir qu'une classe n'a qu'une seule instance et fournit un point d'accès global à cette instance.

Le modèle singleton est largement utilisé en JavaScript. De nombreux développeurs utilisent le modèle singleton pour résoudre le problème de l'instanciation répétée d'objets dans une application, ainsi que pour gérer l'état global de l'application.

En JavaScript, il existe de nombreuses façons d'implémenter le modèle singleton. Ci-dessous, je présenterai les deux méthodes les plus couramment utilisées : les fermetures et le modèle de module.

Utilisez des fermetures pour implémenter un modèle singleton

Les fermetures JavaScript sont un modèle de conception très courant. Il est implémenté à l’aide de la portée de la fonction et de la chaîne de portée. Le modèle singleton peut être implémenté à l'aide de fermetures car il garantit qu'il n'existe qu'une seule instance de l'objet global.

Un objet singleton peut être implémenté via une fonction qui renvoie une fonction :

var Singleton = (function() {
  var instance;

  function init() {
    // 私有变量和方法
    var privateVar = "I am private!";
    function privateMethod() {
      console.log(privateVar);
    }

    // 公共属性和方法
    return {
      publicVar: "I am public!",
      publicMethod: function() {
        privateMethod();
      }
    };
  }

  return {
    getInstance: function() {
      if (!instance) {
        instance = init();
      }
      return instance;
    }
  };
})();

var obj1 = Singleton.getInstance();
var obj2 = Singleton.getInstance();

console.log(obj1 === obj2); // true
Copier après la connexion

Dans le code ci-dessus, la méthode getInstance() renvoie une instance de la classe Singleton, qui est créée lorsque la méthode getInstance() est appelée pour le premier objet Singleton.

Les variables privées et les méthodes privées sont définies dans la fonction init(). Ces méthodes privées et variables privées ne sont accessibles qu'à l'intérieur de la fonction init() et ne sont pas accessibles de l'extérieur.

publicVar et publicMethod sont des propriétés et des méthodes publiques. Ils sont accessibles en externe à l’aide d’objets Singleton.

Lorsque Singleton.getInstance() est accédé pour la deuxième fois, le modèle singleton existe déjà, il suffit donc de renvoyer l'objet créé à l'origine. Ceci est accompli en renvoyant une référence à partir de la variable d'instance.

Utiliser un modèle de module pour implémenter un modèle singleton

Le modèle de module est également un modèle de conception courant qui nous permet de créer des objets singleton. Le modèle de module utilise des variables et des fonctions privées dans les fermetures pour masquer les détails d'implémentation de l'objet. L'utilisation du modèle de module facilite la création d'objets avec des variables et des fonctions privées.

Pour implémenter un objet singleton, vous pouvez utiliser le code suivant :

var Singleton = (function() {
  // 私有变量和方法
  var privateVar = "I am private!";
  function privateMethod() {
    console.log(privateVar);
  }

  // 公共属性和方法
  return {
    publicVar: "I am public!",
    publicMethod: function() {
      privateMethod();
    }
  };
})();

var obj1 = Singleton;
var obj2 = Singleton;

console.log(obj1 === obj2); // true
Copier après la connexion

Dans le code ci-dessus, vous pouvez voir que nous avons créé un objet nommé Singleton, qui a un membre d'objet public (publicVar) et une méthode d'objet public ( publicMethod ).

privateVar et privateMethod sont des membres privés de l'objet Singleton. La façon d'implémenter des membres privés consiste à utiliser des fermetures. Ces membres privés ne sont accessibles que via publicVar et publicMethod.

Après avoir créé un objet Singleton, nous pouvons utiliser la méthode Singleton.publicMethod() pour accéder à ses méthodes publiques.

Résumé

Le modèle singleton est un modèle de conception très couramment utilisé. En JavaScript, vous pouvez utiliser des fermetures et des modèles de module pour implémenter le modèle singleton.

L'utilisation de fermetures peut masquer les variables privées de l'extérieur, garantissant ainsi qu'il n'y a qu'une seule instance d'objet globale.

L'utilisation du modèle de module nous permet de créer plus facilement des objets avec des variables et des fonctions privées, rendant le code plus clair et plus facile à comprendre.

Quelle que soit la méthode utilisée, le modèle singleton est un modèle de conception très puissant qui peut considérablement améliorer l'efficacité et la maintenabilité de nos applications.

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!

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!