Soy un gran fan de DI / IOC. Es excelente para manejar / abstraer dependencias difíciles y hace la vida un poco más fácil.
Sin embargo, tengo una pequeña queja con él, que no estoy seguro de cómo resolverlo.
La idea básica en DI / IOC es que cuando se crea una instancia de un objeto, todas sus dependencias se llenan previamente dentro del constructor.
Sin embargo, en mi humilde opinión, existen varios tipos de parámetros para los constructores (especialmente cuando sus objetos son inmutables).
- Dependencias (los objetos requeridos para que su objeto funcione)
- Configuración (información sobre el entorno requerido para trabajar)
- Parámetros (Datos sobre los que se trabaja)
Encuentro que IOC funciona bien con dependencias. Pero todavía estoy tratando de encontrar la mejor manera de lidiar con los otros dos. Sin embargo, dado que el constructor está destinado a ser ejecutado por el contenedor IOC, parece que necesito colocar estos elementos en el contenedor IOC.
Me gustaría saber qué estrategias / patrones emplean las personas y qué ventajas y desventajas han encontrado.
NB. Soy consciente de que esta es una pregunta altamente subjetiva, y he tratado de convertirla en una "buena" pregunta subjetiva según las directrices de SE.