实际是一个东西,是一种设计模式用来减少程序间的耦合
最重要的一点好处是有效分离了对象和他需要的外部资源,使得他们松散耦合,有利于功能复用,使得程序整个体系变得更灵活
DI 和 IoC 是对同一件事不同描述,从某个方面讲就是他们描述角度不同
DI 从应用程序角度在描述,应用程序依赖容器创建并注入它所需要的外部资源;
IoC 从容器角度在描述,容器控制应用程序,由容器方向向应用程序注入应用程序所需要的外部资源
正转就是按普通的再类中直接创建对象实例 如 $c = new C();
从思想上,发生了主从换位变化,被动的等待IoC/DI容器来创建并注入需要的资源