spring学习之IoC容器

jinnianshilongnian 写道
理解IoC容器问题关键:控制的哪些方面被反转了?

1、谁控制谁?为什么叫反转?IoC容器控制,而以前是应用程序控制,所以叫反转

2、控制什么?控制应用程序所需要的资源(对象、文件……)

3、为什么控制?解耦组件之间的关系

4、控制的哪些方面被反转了?程序的控制权发生了反转:从应用程序转移到了IoC容器。

IoC容器特点:

【1】无需主动new对象;而是描述对象应该如何被创建即可

IoC容器帮你创建,即被动实例化;

【2】不需要主动装配对象之间的依赖关系,而是描述需要哪个服务(组件),

IoC容器会帮你装配(即负责将它们关联在一起),被动接受装配;

【3】主动变被动,好莱坞法则:别打电话给我们,我们会打给你;

【4】迪米特法则(最少知识原则):不知道依赖的具体实现,只知道需要提供

某类服务的对象(面向接口编程),松散耦合,一个对象应当对其他对象有尽

可能少的了解,不和陌生人(实现)说话

【5】IoC是一种让服务消费者不直接依赖于服务提供者的组件设计方式,

是一种减少类与类之间依赖的设计原则。
 

相关推荐