持续创作,加速成长!这是我参与「掘金日新计划 · 6 月更文挑战」的第25天,点击查看活动详情
上一篇文章我们介绍了IOC Service Provider 的两个重要的职责。这篇文章我们来介绍IOC Service Provider 是如何管理对象之间的依赖关系的。
IOC Service Provider 管理对象之间依赖关系的方法
之前我们有提到过,依赖注入有三种方式,即被注入对象可以通过这三种方式“提需求”,告诉IOC Serivce Provider,我有需要的依赖对象,请你为我实现。
同时我们知道,IOC Service Provider 就是解决这个需求的角色,但是它是如何解决的呢,它在收到被注入对象的需求之后,是否就一定会满足被注入对象的需求呢,这里就需要我们进行探讨了。
这里我们还是使用之前举的“去海边生活”的例子。可能你只提出一个需求:“我想去海边生活”,这时候,如果控制反转做得好,那么它就会知道你是需要一所房子的,同时这所房子是你心目中的的确确想要的。
但是假如这个“控制反转”做的不好,那么它就猜不到你去海边生活会依赖一所房子,同时即使猜到了你需要一所房子,可能给出的房子却并不是你想的那个模样。
我们回到IOC Service Provider 的介绍来。IOC Service Provider 不是人工智能,更不是人类,它不会记住也不会凭空分析出你的需求,所以它是需要通过其自身的方式来存储、记录各个对象之间的关系的。
实现这个功能有多种方式,如:
- 通过描述性比较强大的xml 文件格式记录相关信息
- 通过文本文件记录
- 通过编写对应的代码来记录
- 通过语音、视频的方式来记录
总结
这篇文章知识一个入门介绍,其实上述几种方式都是我们可以直接想到的,接下来我们会具体分析IOC Service Provider 是如何管理对象之间的依赖关系的。