1
3
在这种情况下,您真正需要的不是某种自动分离的方法,而是确保长寿命对象所持有的引用不会使行为(以及它所引用的其他所有内容)被垃圾收集。
这是通过实现中介模式实现的。其概念是,您不会给长寿命对象一个带有对
因此,没有什么可以阻止行为和所有其他相关的垃圾收集,剩下的只是一个非常小的中介实例,一个死引用仍然附加到长寿命对象。由于这些调解人很小,他们不代表真正的问题,甚至那些将消失在下次事件的火灾。
幸运的是,你不必自己建造这些东西别人已经做过了。它被称为
|
2
3
Joost van Schaik 提供了一种从附加行为中清除引用的替代方法,同时避免了内存泄漏的问题。这取决于使用关联对象的已加载和已卸载事件的委托执行清理工作。 他还提供了一个代码片段,用于生成附加行为的存根。 |