Pregunta

No estoy seguro de lo que los casos de uso se debe utilizar DI en la aplicación. Yo sé que los servicios como PlaceService inyectar o CalculationService etc encaja muy bien pero debería también crear mis objetos de dominio con DI como un User? Lo que es si el User sólo tiene un constructor que requiere un primer y apellido. Es esto solveable con DI?

¿Debo usar DI para crear las instancias de Set / lista de las interfaces o esto es pura exageración?

Yo uso principalmente guice.

¿Fue útil?

Solución

El uso que la regla es, en general, a favor de la inyección de dependencias, excepto cuando el objeto se puede construir con valores puramente primitivas y no hay es / una mínima posibilidad de que el objeto podría ser reemplazada por otra aplicación.

Sin embargo, para los objetos de dominio, sobre todo si los objetos no constituyen una anémica modelo de dominio , es decir, donde los objetos son sólo bolsas de captadores y definidores, puede ser útil disponer de objetos que, por ejemplo, pueden persistir a sí mismos a un almacén de datos, etc. para aquellos clase de objetos, la inyección de dependencia y Salve puede ser una poderosa combinación.

Guice tiene una solución específica para el tipo de problema planteado por los objetos como su objeto Usuario llamado AssistedInject , aunque las cosas similares también son posibles con otros envases ligeros o el uso de algo las Builder o el adaptador.

Otros consejos

La respuesta por ig0774 es un buen punto de partida. Además, me gustaría ofrecer esta regla de oro:

En la terminología de de dominio-Driven Design , debería hacerlo para DI servicios , pero no para entidades o objetos de valor .

En otras palabras, DI encaja bien con conceptualmente de larga vida, objetos sin estado de los cuales hay por lo general uno o un número conocido en uso.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top