¿Puede alguien explicarme las ventajas de usar un contenedor IOC simplemente codificando la implementación predeterminada en un constructor predeterminado?Constructor por defecto versus contenedor IOC
En otras palabras, ¿qué hay de malo en este código?
public class MyClass
{
private IMyInterface _myInterface;
public MyClass()
{
_myInterface = new DefaultMyInterface();
}
public MyClass(IMyInterface myInterface)
{
_myInterface = myInterface;
}
}
Por lo que puedo decir, esta clase admite la inyección del constructor lo suficiente para que la prueba de la unidad y la burla se hagan fácilmente. Además de eso, el constructor predeterminado elimina la carga computacional del contenedor IOC (sin mencionar que todo el proceso es mucho más transparente).
Las únicas ventajas que puedo ver al usar un contenedor IOC es si necesita cambiar la implementación de sus interfaces con frecuencia. ¿Me estoy perdiendo de algo?