持续创作,加速成长!这是我参与「掘金日新计划 · 6 月更文挑战」的第23天,点击查看活动详情
这篇文章我们介绍掌管着对象的IOC Service Provider。
什么是IOC Service Provider
在我们开发的过程中,各个业务对象可以通过IOC 进行依赖声明。但是我们思考一下,虽然声明了需要依赖的对象,但是各个对象之间是如何绑定到一起的,一定是有某个服务承担了这项工作。这个服务就是IOC Service Provider。
其实IOC Service Provider 并不是一个特指的东西,而是一个抽象出来的概念。
它可以代表任何一种将IOC 场景中的各个业务对象绑定到一起的实现方式。一段代码可以实现这个功能、一组相关的类可以实现这个功能、某个IOC 框架也可以实现这个功能,它们都可以被称为“IOC Service Provider”。
举例如下:
Dep1 dep1 = new Dep1();
Dep2 dep2 = new Dep2();
DepProvider depProvider = new DepProvider(dep1, dep2);
depProvider.getDep1();
这段代码我们就可以认为它是这个场景中的IOC Service Provider。这种实现很简明,但却不实用。试想一下,如果某个业务中有成百上千个对象,如果用这种方法进行依赖关系的声明及对象之间的绑定将会是一个很繁重的体验。
还好目前已经有很多产品使用了各种方式完成了相关的功能,我们只需要学会如何使用这些产品就好了。
Spring 框架中的IOC 容器就是一个很好的提供依赖注入服务的IOC Service Provider。
概念阐明
讲解到这里,我们可能会对三个概念有一些迷惑,这里来一一做说明。
- IOC:这只是一种“方式”,即控制反转。在之前的文章中,我们经常说,通过IOC 方式进行什么样的操作等等,它只是一种概念,一种抽象出来的管理对象的方法。
- IOC 容器:IOC 容器是Spring 框架提供的一种实现了IOC 理念的服务,作为IOC Service Provider 管理着大大小小的对象。
- IOC Service Provider:这是一个抽象的概念,就是用来管理对象的一种服务的统称。具体概念可以参考上文。