设想这样一个场景,假设我们需要写一篇文章C,这篇文章需要引用2个文章A和B,我们自己需要先把这两篇文章写完,才能继续动手写第3篇文章。这是正常的流程。
但是有这样一个平台——微信,它碰巧有文章A和B,而且它还有一个推送机制,只要我们告诉微信,我需要文章A和文章B,微信就推送给我们了,我们把这2篇文章的链接放在文章末尾,然后我们就可以编写自己的文章C了。
如果以后引用的文章A和B需要改变,正常流程下,我们需要在文章C的上面文章A和B的地方修改。而在控制翻转的情况下,我们在微信平台修改文章A和B的内容,可是文章C下面的引用链接没有改。
由自己先编写2篇文章到微信平台(可看做一个容器)把已经写好的2篇文章推送给我们,提供给文章C所需要的文章A和B的控制权由我们转移到微信了,这就是控制翻转(IOC)。
只有提供给我们文章A和B才能写出文章C,这就是依赖注入(DI)。