持续创作,加速成长!这是我参与「掘金日新计划 · 6 月更文挑战」的第24天,点击查看活动详情
上一篇文章我们介绍了IOC Service Provider 的基本概念,同时我们明确了Spring 中提供的IOC 容器本身就是一个IOC Service Provider。
这篇文章我们来介绍IOC Service Provider 的职责。
IOC Service Provider 的职责
IOC Service Provider 所负责的工作主要有两个:
- 构建管理业务对象
- 对业务对象之间的依赖进行绑定
其实我们在了解IOC Service Provider 的职责的时候,可以使用一个特殊的例子来参照,即通过参考Spring 框架中的IOC 容器去理解IOC Service Provider 的职责。
我们来对上面两个职责依次做详细的介绍。
构建和管理业务对象
在IOC 模式设定的业务场景中,对于业务对象来说,其实它们无需关心它们需要依赖的对象是如何构建,如果获取的。
对于构建和获取的工作正是交由IOC Service Provider 来做的。
IOC Service Provider 是需要将构建对象的逻辑从客户端中剥离出来的,这样就可以避免在客户端对象中的繁琐的业务逻辑中增添很多非业务代码。
业务对象之间的依赖关系的绑定
对于IOC Service Provider,这个职责是它所必须承担的,而且十分重要。
其实IOC 规则的运行是离不开对象之间的依赖关系的“自动化”的。如果没有这个功能,那么任凭业务对象如何“提需求”,也不会有人回应,那么IOC 的规则就是跑不通的。所以说,这个职责也是IOC Service Provider 的最重要的职责。
如果无法实现业务对象之间的依赖关系的绑定,常常就会收到一个NPE 异常。
IOC Service Provider 通过上一个职责所做的内容:构建和管理所有业务对象,结合各个业务对象之间的可以认出的依赖关系,将这些对象之间进行注入和绑定,从而就可以让各个业务对象在使用的时候能处于“可用”状态。
总结
以上就是IOC Service Provider 的职责的讲解。