Manual:Intro:Patterns:Singleton fr (Legacy)
This version of our Learning Center is unmaintained.
This article may be out-of-date or contain incorrect information.
Please visit the new Sencha Learning Center for up-to-date material.
From Sencha - Learn
| Summary: Patterns:Singleton |
| Author: Sébastien ROMMENS(Translator) |
| Published: January 06, 2008 |
| Ext Version: 1.1 |
Languages: English French 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"); } }) }();

French