理解IoC容器问题关键:控制的哪些方面被反转了?
1、谁控制谁?为什么叫反转? IoC容器控制,而以前是应用程序控制,所以叫反转
2、控制什么? 控制应用程序所需要的资源(对象、文件……)
3、为什么控制? 解耦组件之间的关系
4、控制的哪些方面被反转了? 程序的控制权发生了反转:从应用程序转移到了IoC容器。
IoC容器特点:
【1】无需主动new对象;而是描述对象应该如何被创建即可
IoC容器帮你创建,即被动实例化;
【2】不需要主动装配对象之间的依赖关系,而是描述需要哪个服务(组件),
IoC容器会帮你装配(即负责将它们关联在一起),被动接受装配;
【3】主动变被动,好莱坞法则:别打电话给我们,我们会打给你;
【4】迪米特法则(最少知识原则):不知道依赖的具体实现,只知道需要提供
某类服务的对象(面向接口编程),松散耦合,一个对象应当对其他对象有尽
可能少的了解,不和陌生人(实现)说话
【5】IoC是一种让服务消费者不直接依赖于服务提供者的组件设计方式,
1、谁控制谁?为什么叫反转? IoC容器控制,而以前是应用程序控制,所以叫反转
2、控制什么? 控制应用程序所需要的资源(对象、文件……)
3、为什么控制? 解耦组件之间的关系
4、控制的哪些方面被反转了? 程序的控制权发生了反转:从应用程序转移到了IoC容器。
IoC容器特点:
【1】无需主动new对象;而是描述对象应该如何被创建即可
IoC容器帮你创建,即被动实例化;
【2】不需要主动装配对象之间的依赖关系,而是描述需要哪个服务(组件),
IoC容器会帮你装配(即负责将它们关联在一起),被动接受装配;
【3】主动变被动,好莱坞法则:别打电话给我们,我们会打给你;
【4】迪米特法则(最少知识原则):不知道依赖的具体实现,只知道需要提供
某类服务的对象(面向接口编程),松散耦合,一个对象应当对其他对象有尽
可能少的了解,不和陌生人(实现)说话
【5】IoC是一种让服务消费者不直接依赖于服务提供者的组件设计方式,
是一种减少类与类之间依赖的设计原则。
待续。。。