Inversión de Control <Inyección de Dependencia

Tengo la sensación de que no existe la inversión de control o, más bien, el término correcto es dependency injection. ¿Me equivoco al asumir esto?

He estado tratando de definir IoC por mi propio bien. Al hacerlo, aprendí mucho sobre los contenedores de IoC y la dependency injection.

Justo ahora, leí esto en el sitio web de Martin Fowler :

Como resultado, creo que necesitamos un nombre más específico para este patrón. La inversión del control es un término demasiado genérico y, por lo tanto, a las personas les resulta confuso. Como resultado, con una gran cantidad de discusiones con varios defensores de IoC nos decidimos por el nombre Dependency Injection.

En el mundo de la IoC moderna, ¿la dependency injection no es solo una forma de lograr la IoC?

Si acepta la definición de Fowler , Inversion of Control es un término mucho más amplio que DI que cubre todo el uso del framework donde se conecta a un framework, pero el framework aún está bajo control.

Por ejemplo, en .NET, los marcos como ASP.NET o Windows Presentation Foundation finalmente tienen el control, pero proporcionan varios eventos y costuras que puede usar para construir una aplicación. Lo mismo es cierto en otras plataformas.

Dependency Injection es una especialización de IoC que aplica IoC específicamente para administrar dependencias.

Ese es uno de los pocos puntos en que Mark y yo no estamos de acuerdo. Según mi libro, el principio de Inversion of Control es el mismo que aquí, así que no lo repetiré.

La dependency injection es simplemente un acto de externalización de creación de dependencias al mundo exterior por componentes.

La gestión de estas dependencias (y muchas otras cosas) es lo que hace la Inversión de Contenedores de Control , y el uso de DI como parte de ella, es simplemente un detalle de implementación.

Sí, IoC significa que la clase en sí no controla las cosas, pero se llama desde afuera. La dependency injection es la manera de hacer esto.

La dependency injection es de hecho un término mucho más concreto, más bien definido que la inversión del control.