¿Cuál es el uso de un marco IoC en una aplicación MVC? [cerrado]

Estoy tratando de entender el uso de un marco de IoC como StructureMap, pero no puedo evitar pensar que estos "patrones de diseño" son simplemente una tontería, lo que hace que el código sea más complejo.

Permítanme comenzar con un ejemplo en el que creo que una IoC es algo útil.

Creo que una IoC puede ser útil cuando se trata de la creación de instancias de clases de controlador en un marco MVC. En este caso estoy pensando en el framework .NET MVC.

Normalmente, la creación de instancias de la clase de controlador es manejada por el marco. Eso significa que realmente no puede pasar ningún parámetro al constructor de su clase de controlador. Aquí es donde un marco de IoC puede ser útil. En algún lugar de un contenedor de IoC, especifique qué clase debe crearse una instancia y pasarla a sus controladoresconstructor cuando se invoca la clase de controlador.

Esto también es útil cuando desea probar el controlador en forma unitaria, ya que puede burlarse del objeto que se le pasa.

Pero como dije, puedo entender un poco por qué la gente quiere usarlo para sus clases de controladores. Pero no fuera de eso. A partir de ahí puedes simplemente hacer lo normal.Inyección de dependencia.

Pero ¿por qué no simplemente hacerlo así?

public class SomeController
{
    public SomeController() : this( new SomeObj() ) 
    {
    }

    publiv SomeController(SomeObj obj)
    {
        this.obj = obj;
    }
}

Ahora no tiene que usar ningún marco de IoC de terceros, lo que también significa una curva de aprendizaje más baja. Ya que no tienes que entrar en las especificaciones de ese marco también.

Todavía puedes burlarte del objeto en tus Pruebas Unitarias. Así que no hay problema allí tampoco.

Lo único que puedes decir es "pero ahora tu clase esestrechamente acoplado aSomeObj". ¡Esto es cierto! ¡Pero a quién le importa !? ¡Es una clase de controlador! No voy a reutilizar esa clase, nunca ... Entonces, ¿por qué diablos debería preocuparme por ese acoplamiento apretado ...? Puedo burlarme del objeto Pasado a eso. Eso es lo único importante.

Entonces, ¿por qué debería molestarme en usar un IoC? ¿Realmente estoy perdiendo el punto ...? Para mí, el patrón IoC es solo un patrón sobrevalorado. Agregando más capas complejas a tu aplicación ...

Respuestas a la pregunta(3)

Su respuesta a la pregunta