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 () {} };
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 () {} }; })();
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);
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() {} }
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'
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!