Ext JS - Learning Center

Manual:Intro:Patterns:Singleton fr

From Learn About the Ext JavaScript Library

Jump to: navigation, search
Summary: Patterns:Singleton
Author: Sébastien ROMMENS(Translator)
Published: January 06, 2008
Ext Version: 1.1
Languages: en.png English fr.png French kr.png Korean

Contents

Définition

Un Singleton est un modèle de conception où une seule instance d'un objet peut être créée dans une application. Vous pouvez voir un Singleton comme une variable globale définie une seule fois et accessible partout dans votre application.

Le modèle Singleton est utilisé dans l'ensemble des exemples d'Ext, mais la raison du choix de cette structure n'est pas toujours évidente dans l'exemple seul. Un exemple typique consisterait à créer un Singleton comportant une méthode "init" qui serait appelée une seule fois. Dans un tel exemple, le Singleton n'est pas vraiment nécessaire. Par contre, si vous ajoutez, par exemple, une méthode "reload" vous risquez de voir comment il pourrait être appelé à nouveau à partir de différents endroits au sein de votre application. En utilisant un Singleton, celui-ci vous assure qu'il y a une et seulement une seule instance de votre objet. Vous pouvez alors accéder ou modifier ses paramètres à travers toute votre application.

Objet Singleton.

Exemple

Singleton = function(){
   var _instance = null;
   return {
      getInstance : function(){
         if(_instance === null){
            _instance = {};       //définissez votre instance ici
         }
         return _instance;
      }
   };
}();
 
Ext.onReady(function(){
   var x = Singleton.getInstance();
   var y = Singleton.getInstance();
 
   if(x == y){
      alert("Ces objets représentent la même instance");
   }
});

Objet Singleton qui étend une classe existante

Exemple

myObservableSingleton = function(){
    var privateProperty = "Seulement accessible à l'intérieur de cette classe";
 
    function privateMethod() {
        alert("Seulement exécutable à l'intérieur de cette classe");
    }
 
    return Ext.apply(new Ext.util.Observable, {
        publicProperty: "Vous pouvez accéder à cette propriété",
 
        publicMethod: function() {
            alert("Vous pouvez appeler cette méthode");
        }
    })
}();
  • This page was last modified 14:22, 3 July 2008.
  • This page has been accessed 899 times.