acabo de retocar con Google Guice para Dependency Injection y comencé a integrarlo en mi aplicación existente. Hasta aquí todo bien. Tengo muchas clases que necesitan, además de sus dependencias, Strings, DataSources, etcétera. Sé que hay NamedBindings, pero realmente no quiero crear una anotación para cada cadena simple que tengo que pasar al constructor para cada clase. Luego, hay una cosa llamada AssistedInject, que crea Implementaciones de fábrica para mí. Guau, pero aún tengo que definir la interfaz de la fábrica. Eso está bien para las clases que sí tienen dependencias, pero qué pasa con esta clase de ejemplo:Inyección de Dependencia con Guice: algo que no está cubierto por ningún tutorial
public class FooBarClass {
public FooBarClass(String name, String anotherOne) {
// Some stuff
}
}
Hay casos en los que estoy en duda cómo utilizar Guice o, más generalmente, DI de la manera correcta. "A menudo oigo: XYZ Framework es el nuevo nuevo". Pero esto implícito que tengo que crear cada instancia con el marco DI.
Sólo se requiere una instancia
¿Y si necesito sólo una instancia de esta clase? Esta clase no tiene absolutamente ninguna dependencia al lado de dos cadenas. Piensa en un Shutdown Hook que se instanciará solo una vez y se pasará a la JVM como mi Shutdown Hook. ¿Debo crear esta instancia con Guice? Esto me parece muy tonto, porque no hay nada que inyectar, pero tengo que escribir una interfaz de fábrica para pasar los dos parámetros a Guide y tengo que crear una interfaz para que mi FooBarClass use DI.
casos se requieren múltiples
Lo mismo se aplica a un caso en el que necesito varias instancias de esta clase. No hay dependencias, pero tengo que crear un montón de código repetitivo para obtener nada de eso. Esto me parece mal.
Entonces, ¿cómo se supone que debo usar DI y/o Guice?
¡Muchas gracias!