2014-12-21 107 views
1

我要實現我的代碼觀察者Java的觀察和可觀察何時刪除

我有一個圖案,在某個時刻如下

public class MyObservable extends Observable { 

    public void setSomething(Object something) { 
     this.something = something; 
     setChanged(); 
     notifyObservers(something); 
    } 
} 

,我添加一個觀察者這個類和所有作品好。

現在出現這個問題。 當我的觀察員不再使用。 我什麼時候刪除觀察者? 我需要嗎?

回答

0

請看下面的例子:

說你正在尋找一份工作,你將在網上作業通過一些門戶網站註冊,並註冊到您的電子郵件作業警報,然後充當觀察員。這意味着您將自己添加爲觀察者,並在自己的郵件中觀察所有工作通知,然後根據通知應用/拒絕某些工作通知。

現在讓我們說一個幸運的一天,你會得到這份工作,你將從門戶取消註冊,這意味着你將以觀察者的身份移除自己,並且你將不再收到通知。

+0

我明白了,謝謝。但這不是我的問題。 我有一段代碼,其中包含一些觀察某些觀察對象的模型對象。當我離開顯示這些對象的屏幕時,我期望這些觀察者死亡,因爲它們應該被垃圾收集。在這種情況下,我是否需要取消註冊觀察者?或者他們只是泄漏?如果是的話,那麼哪個java方法(在普通對象的生命週期中)允許我這樣做? (並沒有我不是指deleteObserver,我的意思是我調用deleteObserver的方法)我甚至需要調用此方法嗎? –

+0

只需要像'try {show page} {deleteObserver}' – SMA

+0

這樣的東西? (這個文本是不需要的,只是爲了使評論更長而寫) –