Skip to content

Instantly share code, notes, and snippets.

@allanbatista
Created March 21, 2013 15:46
Show Gist options
  • Save allanbatista/5214069 to your computer and use it in GitHub Desktop.
Save allanbatista/5214069 to your computer and use it in GitHub Desktop.
Objeto criador de gerenciador de outros objetos e métodos
/**
* Objeto criador de gerenciador de outros objetos e métodos.
*
* Esta objeto tem por finalidade ensentivar as boas práticas na
* programação javascript, criando classes, extenções e objetos.
*
* @type {Object}
* @author Allan Batista
*/
App = {
list : {},
singleton : {},
define : function(nome, metodo){
if(!this.list[nome]){
this.list[nome] = metodo;
}
},
declare : function(nome, obj, extds){
if(!this.singleton[nome]){
this.singleton[nome] = obj;
this.extend(this.singleton[nome], extds);
}
},
extend : function(obj, extds){
var posicao;
if(obj && extds && extds.length){
for(posicao in extds){
if(extds.hasOwnProperty(posicao)){
this.list[extds[posicao]].apply(obj);
}
}
}
return obj;
},
create : function(nome, extds){
var obj = new this.list[nome]();
return this.extend(obj, extds);
}
};
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment