ero alla ricerca di uno l'anno scorso e sono imbattuto in squirrel-ioc. C'era qualcosa che non mi piaceva a riguardo - penso che supportasse solo istanze di stile singleton.
Squirrel è un contenitore CIO implementato in JavaScript per promuovere un migliore utilizzo delle architetture e modelli in basati sul browser Javascript applicazioni
ho iniziato a scrivere il mio, ma ho abbastanza lontano (costruttore e setter iniezione, valori e relazioni di riferimento, supporto singleton, test JsUnit) ma mai veramente necessari nella mia applicazione. Potrei dover controllare il progetto di Luke. Per riferimento, ecco un esempio del formato di configurazione con cui ho finito.
var iocConfig = {
"a" : { Type : A },
"b1" : { Type : B, Props : [{Name : 'Letter', Ref : "a"}] },
"b2" : { Type : B, Props : [{Name : 'Letter', Val : "a"}] },
"c2" : { Type : C, Args : [{Ref : "a"}, {Val : "a"}] },
"d" : { Type : D, Props : [{Name : 'Letter', Ref : "a"}] },
"date" : { Type : Date, Props : [{Name : 'FullYear', Val : 2008}, {Name : 'Month', Val : 0}, {Name : 'Date', Val : 1}] },
"array3" : { Type : Array, Args : [{Val : 3}] },
"number1" : { Type : Number, Args : [{Val : 1}] },
"string1" : { Type : String, Args : [{Val : "1"}] },
"s-true" : { Type : S, Singleton : true},
"s-false" : { Type : S, Singleton : false}
};
Si può solo avere le funzioni rinominati in un file diverso, perché avete bisogno di un quadro? –
C'è molto di più. In JasFac (vedi la mia risposta) non ho nemmeno iniziato a grattare la superficie di ciò che può/dovrebbe essere fatto. È un grande argomento. JavaScript di solito tende a utilizzare i modelli di stile Localizzatore di servizi, ignorando totalmente IoC –
Un paio di risposte provengono da persone che amano IoC ma che in realtà non hanno utilizzato la loro soluzione. Sarei curioso di sapere come hanno tenuto i loro oggetti disaccoppiati. Utilizzando un localizzatore di servizi? –