依赖注入的概念理解

来源:互联网 发布:如何让mac不休眠 编辑:程序博客网 时间:2024/06/02 12:29

依赖注入的概念理解


        “从名字上理解,所谓依赖注入,即组件之间的依赖关系由容器在运行期决定,形象的来说,即由容器动态的将某种依赖关系注入到组件之中。”


        笔记本电脑、移动硬盘、U盘。“三中设备都有一个共同点,都支持USB接口。当我们需要将数据复制到外围存储设备时,可以根据情况,选择是保存在U盘还是USB硬盘。”


        “笔记本电脑与外围存储设备通过预先指定的一个接口(USB)相连,对于笔记本而言,只是将用户指定的数据发送到USB接口,而这些数据何去何从,则由当前接入的USB设备决定。在USB设备加载之前,笔记本不可能预料用户将在USB接口上接入何种设备,只有USB设备接入之后,这种设备之间的依赖关系才开始形成。”


        “对应上面关于依赖注入机制的描述,在运行时(系统开机,USB设备加载)由容器(运行在笔记本中的Windows操作系统)将依赖关系(笔记本依赖USB设备进行数据存取)注入到组件中(Windows文件访问组件)”


       就如上面所说的那样,假使我们需要把移动硬盘(组件A)中的数据存放到U盘(组件B)中,我们会把移动硬盘(组件A)中的数据放入笔记本(容器),然后从笔记本(容器)中取数据,移动到U盘(组件B)中。这种依赖于容器来实现数据的存取的做法,我想就是依赖注入的浅层解释吧。


        IoC还有另一个称呼,即Hollywood原则(“Don't call me, I'll call you”,即,请不要调用我,我将调用你)。通常,应用代码需要告知容器或框架,让它们找到自身所需要的类,然后再由应用代码创建待使用的对象实例。因此,应用代码在使用实例之前,需要创建对象实例。然而,IoC将创建对象实例的任务交给IoC容器或者框架(实现IoC设计模式的框架,有时候也称为IoC容器),使得应用代码只需要直接使用实例,这就是IoC.


        通过使用IoC能够降低组件之间的耦合度,最终,能够提高类的重用性,更利于测试,而且整个产品或系统更利于集成和配置。

0 0