Maison > interface Web > js tutoriel > Comment puis-je implémenter un modèle Singleton simple et propre en JavaScript ?

Comment puis-je implémenter un modèle Singleton simple et propre en JavaScript ?

Mary-Kate Olsen
Libérer: 2024-12-07 09:45:16
original
181 Les gens l'ont consulté

How Can I Implement a Simple and Clean Singleton Pattern in JavaScript?

Modèle Singleton en JavaScript : atteindre la simplicité et la propreté

En JavaScript, l'implémentation du modèle singleton peut être réalisée de différentes manières, mais qu'en est-il la recherche de la simplicité et de la propreté est au rendez-vous. Une approche qui incarne ces qualités est la création simple d'un objet littéral, comme indiqué ci-dessous :

var myInstance = {
  method1: function () {},
  method2: function () {}
};
Copier après la connexion

Cette méthode établit une interface publique via l'objet littéral, rendant ses membres accessibles à d'autres parties du code.

Cependant, si des membres privés sont souhaités, le modèle de module apparaît comme une solution populaire :

var myInstance = (function() {
  var privateVar = '';

  function privateMethod () {}

  return { // public interface
    publicMethod1: function () {},
    publicMethod2: function () {}
  };
})();
Copier après la connexion

Le modèle de module exploite les fermetures pour encapsuler les membres privés dans l'instance singleton.

Pour empêcher les modifications et garantir l'immuabilité, la méthode ES5 Object.freeze peut être utilisée :

Object.freeze(myInstance);
Copier après la connexion

Cette action garantit que toute modification apportée au singleton la structure ou les valeurs de l'objet sont rejetées.

Dans ES6, les modules ES offrent une solution élégante pour créer singletons :

// my-singleton.js
const somePrivateState = []

function privateFn () {}

export default {
  method1() {},
  method2() {}
}
Copier après la connexion

La portée du module héberge commodément à la fois les méthodes publiques et les variables privées. L'importation du singleton dans d'autres modules reste une tâche simple :

import myInstance from './my-singleton.js'
Copier après la connexion

En adoptant ces approches, vous donnez à votre code JavaScript la polyvalence et la simplicité du modèle singleton, permettant l'accès contrôlé et la gestion des ressources partagées.

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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal