什么是控制反转:
原本,一个对象A需要调用它的外部资源对象C时,需要直接在对象A内,创建对象C再对它进行方法的调用。控制反转就是对象需要调用外部资源时,不再通过创建对象C的方式主动调用资源,而是通过loC容器获取一个C的实例,对象A被动的接收loC容器传递过来的外部资源。
什么是依赖注入:
DI容器将某个对象所需要的外部资源注入到某个对象
两者联系:
从上我们基本可以看出控制反转与依赖注入为同一件事的不同描述,只是她们的描述方向不一样。
控制反转是从容器方面,容器控制应用程序的创建,并且为其提供需要调用的外部资源。
依赖注入是从应用程序方面,应用程序依赖容器进行创建,并且注入它所需要的外部资源。