如何用图明确无歧义的表示什么是控制“反转”?
椭圆是值对象,矩形是引用对象
这是没有控制反转时的cpu(“控制”器)行走路径,所谓反转就是:给予cpu的执行更多的空间结构信息(依赖配置,由高维生物的我们给它提供预设的神秘信息,其实就是建立起对象空间的关系图,绘制空间结构图),从而让cpu行走的路径在系统局部处和上图颠倒。
tree是空间,walk是时间。walktree就是时空。所有的系统都是walktree。不仅仅是计算机系统。
cpu不再walktree而是可以在“局部”和walktree的路径相反,这就是控制反转?但,系统在整体上必定永远是walktree,反转只在局部。系统还是walktree,只是没有反转时是完全的先序行走,局部反转后使得可以在系统局部夹杂上了后续walktree了。匪夷所思啊,先序后序夹杂着进行的话如何保证不丢失问题空间呢?由高维生物的我们在高维观察后为它输入了对它来说的神秘信息保证。更进一步说:如果把cpu行走进“配置空间”的路径也算上的话:那么cpu(“控制”器)永远都没有反转,还是永远是在沿着同一个顺序行走。
所以,那些鼓吹DI、IoC的人是根本没有理解系统的运行模式?非也,因为如果说者界定了问题空间的边界的话是可以说边界内的问题空间单元之间的关系是否反转了的。比如把xml配置关系视而不见的话是可以说java对象空间中的对象之间的关系反转了的。遗憾的是说者不会去递归地无止境地去界定问题空间的边界,所以我们听到的看到的东西都有隐含的预设存在。所以读书学习还是需要悟性的。