當object2
發生某些狀態更改時,我需要在object1
上執行一些任務。 我試圖在android中使用可觀察模式,我的意思是使用Observer和Observable類,所以object1
實現了Observer和object2
擴展了Observable。不幸的是,object2
已經從另一個類擴展,所以我不能將它定義爲Observable的擴展。可選擇的可觀察模式?
是否有另一種使用這種模式的替代方案?也許其他類允許我執行此行爲?
謝謝。
當object2
發生某些狀態更改時,我需要在object1
上執行一些任務。 我試圖在android中使用可觀察模式,我的意思是使用Observer和Observable類,所以object1
實現了Observer和object2
擴展了Observable。不幸的是,object2
已經從另一個類擴展,所以我不能將它定義爲Observable的擴展。可選擇的可觀察模式?
是否有另一種使用這種模式的替代方案?也許其他類允許我執行此行爲?
謝謝。
只需添加到object2
場Observable
型的方法,其觀察員和上notifyObservers()
在某些事情發生變化時被調用
這就是「支持繼承」的意思。
擴展內置的Observable類實現觀察者模式是一個相當糟糕的選擇,因爲它破壞了你的類層次結構,但你已經知道了。
更好的方法是定義自己的Observable
接口並讓你的類實現它。您還需要一個Listener
接口,用於監聽類添加
你需要在你的Observable
接口被addListener(Listener listener)
和removeListener(Listener listener)
謝謝!對我而言足夠了。 kostja的解決方案聽起來不錯,但需要額外的努力。 – forumercio
這是一個「危險的」解決方案。雖然它也適用於我。但是,另外你應該提到,要將你的課程或者至少將所有相關屬性聲明爲私有。當你的課程被另一個課程擴展時,這是保持你的可觀察工作的唯一方法... – Sauer