【发布时间】:2011-05-26 01:15:14
【问题描述】:
我想我仍然在尝试理解依赖注入和 DI 容器的作用。
如果 DI 意味着较低级别的组件依赖于较高级别的组件,并且没有循环引用,那么该对象不会被垃圾回收吗?正如我所看到的垃圾收集(标记和清除),它只保留可以通过从程序根开始的引用链跟踪的对象。
由于我难以解释自己,这里有两个 UML 图,在我看来,它们呈现了相互矛盾的依赖注入视图:
我对 DI 的原始解读
DI 容器注入组件及其所需的引用,并且它们每个都存储对其下一个最高命令的引用。 Main 类无法访问它们,因此应该对它们进行垃圾收集。
我对 DI 的重新考虑
DI Container 注入组件及其所需的引用,并维护对每个组件的引用。他们每个人都存储了对其下一个最高指挥官的引用。 Main 类可以通过 DI Container 访问它们中的任何一个,因此它们不应该被垃圾收集。
【问题讨论】:
标签: java actionscript-3 oop dependency-injection garbage-collection