Desacoplamiento es un principio muy general aplicable en muchos campos. La inversión de dependencia es una forma específica de desacoplamiento en la que desacopla los niveles superiores de su sistema de los niveles inferiores separándolos en bibliotecas y usando interfaces. Esto le permite reemplazar partes de menor nivel de su sistema sin una repetición importante.
Por ejemplo, en lugar de que las partes de nivel superior del sistema creen instancias concretas de las clases de nivel inferior, un contenedor IoC se puede usar para desacoplar cómo se crean los objetos.
La inversión de control es un principio de diseño utilizado por las bibliotecas de marcos que permite que el marco recupere el control de la aplicación. Es decir, un marco de ventana puede volver a llamar al código de la aplicación cuando se producen ciertos eventos de interfaz de usuario. Martin Fowler usa el término Hollywood Principio como en No nos llame, lo llamaremos. El desacoplamiento es una parte importante de la inversión de control.
Pero, ¿qué tiene que ver con IoC contenedor que ver con la inversión de control? To quote Martin Fowler:
Inversion of Control es un término demasiado genérico, por lo que 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.
(Tenga en cuenta que Martin Fowler habla de la inyección de dependencias , no dependencia de la inversión.)
contenedor IoC Una ayuda para implementar la inyección de dependencia y tal vez un término más adecuado sería la dependencia contenedor de inyección. Sin embargo, el nombre del contenedor IoC parece pegarse. La inyección de dependencia es un componente importante en la inversión de dependencia, pero el uso de contenedores de IoC para la inyección de dependencia puede ser confuso ya que la inversión del control es un principio más amplio y más genérico.
Señala que la nomenclatura no es muy uniforme, pero no debería ser una gran sorpresa, ya que estos términos se han inventado y utilizado independientemente, aunque se superponen.
@Anton Gogolev: El desacoplamiento se escribe con el extra "o": http://en.wikipedia.org/wiki/Decoupling#Software_Development –