Singleton
A groso modo, podemos decir, que es un patrón de diseño que sólo permite obtener una instancia de una clase.
En JavaScript podemos crear directamente un objeto mediante la sintaxis JSON o crear una instancia mediante una función anónima.
var SingletonA = {
name:"A",
getName:function(){
return this.name;
}
};
var SingletonB = new function(){
var name = "B";
this.getName = function(){
return name;
};
};
alert(SingletonA.getName());// A
alert(SingletonB.getName());// B
Con JSimpleClass la vía para crear un singleton es distinta, tenemos que declarar una clase abstracta y final y crear un método estático para acceder a instancia.
function Singleton(){
var name = "A";
this.getName = function(){
return name;
};
this.$$DEFINE_STATIC = function(){
this.$$static.getInstance = function(){
return this;
};
};
};
var Singleton = Class.create("Singleton",Singleton,"final");
var A = Singleton.$$static.getInstance();
alert(A.getName());// return A
Es un poco más cargado que los métodos anteriores, pero nos da un mayor control y no permite aprovechar todos los métodos y propiedades que nos proporciona JSimpleClass.