IoC :(inversion of Control) 控制反转,依赖注入(Dependency Injection)
如果我们依赖于某个类或服务,最简单的方式就是直接在类的构造函数中新建相应的依赖类。
这就好比要装修新房,需要用家具,这个时候通常解决对象依赖的做法是,直接打造出我们需要的家具。通常我们不会去这么做,而是去市场上买回来。不管是直接打造(new构造对象)还是去买回来(Service-Locator解决依赖耦合)都是我们自己主动去获取依赖的对象。IoC提供了送货上门的服务,需要什么,让其直接送过来。
在IoC场景中,二者通过IoC Service Provider打交道。从被注入对象的角度看,与之前直接寻求依赖对向性比,依赖对象的取得方式发生了反转,控制也从被注入对象转到了 IoC Service Provider。
家具的送货上门也需要知道你的需求,你需要告诉IoC Service Provider你需要什么服务。
IoC模式中被注入对象通过哪些方式告诉IoC Service Provider需要提供的服务?
- 构造方法注入。2,setter方法注入。3,接口注入。
IoC是一种可以帮助我们解耦各业务对象间依赖关系的对象绑定方式。