依赖注入
目录
概述
控制反转**(Inversion of Control, IoC)**,是面向对象编程的一种设计原则,目的是降低代码耦合。常见方式有 依赖注入 (Dependence Injection, DI) 和 依赖查找 (Dependency Lookup) 。
技术描述
Class A中用到了Class B的对象b,一般情况下,需要在A的代码中显式的new一个B的对象。
采用依赖注入技术之后,A的代码只需要定义一个私有的B对象,不需要直接new来获得这个对象,而是通过相关的容器控制程序来将B对象在外部new出来并注入到A类里的引用中。
实现方式
依赖注入有如下实现方式:
- 基于构造函数。实现特定参数的构造函数,在新建对象时传入所依赖类型的对象。
- 基于 set 方法。实现特定属性的public set方法,来让外部容器调用传入所依赖类型的对象。
Ioc 容器
不管是哪一种实现,依赖单元的实例化代码是一个重复、繁琐的过程,且当系统很复杂的时候,依赖嵌套,前后关系的处理将很麻烦。所以 IoC 容器 被发明出来了。IoC Container提供了动态地创建、注入依赖单元,映射依赖关系等功能,减少了许多代码量。