que estaba buscando uno el año pasado y corrió a través de squirrel-ioc. Había algo que no me gustó: creo que solo admite instancias de estilo singleton.
ardilla es un contenedor de IoC implementado en Javascript para promover el mejor uso de la arquitectura y patrones en Javascript aplicaciones basadas en navegador
empecé a escribir mi cuenta y tengo bastante lejos (constructor y setter injection, valores y relaciones de referencia, soporte singleton, pruebas JsUnit) pero nunca realmente lo necesité en mi aplicación. Puede que tenga que ver el proyecto de Luke. Como referencia, aquí hay un ejemplo del formato de configuración con el que terminé.
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}
};
Usted sólo puede tener las funciones cuyo nombre cambió en un archivo diferente, ¿por qué necesita un marco? –
Hay mucho más que eso. En JasFac (ver mi respuesta), ni siquiera he empezado a arañar la superficie de lo que se puede/debería hacer. Es un gran tema. Normalmente, JavaScript tiende a utilizar patrones de estilo de Localizador de servicios, omitiendo por completo IoC –
Algunas respuestas son de personas a las que les gusta IoC pero que en realidad no terminaron utilizando su solución. Me gustaría saber cómo se mantienen desacoplados sus objetos. ¿Usando un localizador de servicio? –