Java 观察者模式-删除主题(垃圾收集器何时删除主题)

Java 观察者模式-删除主题(垃圾收集器何时删除主题),java,garbage-collection,observer-pattern,Java,Garbage Collection,Observer Pattern,我有一个类主题实现了多个“可观察”接口,我需要删除这个主题。因为在Java中,您并不是自己删除对象(垃圾收集器为您执行此操作),所以我需要删除对此对象的所有引用(因此我需要取消订阅所有观察者),创建将取消订阅所有观察者的delete方法是否正确?还是有更好的方法(我试着用谷歌搜索,但什么也没找到) 换句话说,谁能告诉我垃圾收集器什么时候删除主题吗?很难说垃圾收集器什么时候删除对象。对我来说,这取决于你使用的GC。 因此,如果一个对象没有引用,它确实可以进行垃圾收集,但您无法确切地知道它实际发生的

我有一个类主题实现了多个“可观察”接口,我需要删除这个主题。因为在Java中,您并不是自己删除对象(垃圾收集器为您执行此操作),所以我需要删除对此对象的所有引用(因此我需要取消订阅所有观察者),创建将取消订阅所有观察者的delete方法是否正确?还是有更好的方法(我试着用谷歌搜索,但什么也没找到)


换句话说,谁能告诉我垃圾收集器什么时候删除主题吗?

很难说垃圾收集器什么时候删除对象。对我来说,这取决于你使用的GC。 因此,如果一个对象没有引用,它确实可以进行垃圾收集,但您无法确切地知道它实际发生的时间


现在,要给出关于可观察模式的答案,您需要创建一个方法
deleteObservers
,以删除对主题的引用。我不知道您是如何实现该模式的,Java类有这个方法,但这是不推荐的,因为Java 9。

观察者以可观察的方式订阅,而不是相反。因此,观察者不需要“取消所有观察者的订阅”。