什麼應該是最好的Java
接口或類似的模式,可以用作通用回調機制?Java中的通用回調
例如它可以像
public interface GenericCallback
{
public String getID();
public void callback(Object notification);
// or public void callback(String id, Object notification);
}
將需要的重寫hashCode()
法案件的ID,這樣被叫識別來電者。
像上面這樣的模式對於需要報告它們從一個條件產生的類(例如,處理結束)的對象是很有用的。
在這種情況下,「父」類將使用這些GenericCallback
對象的getID()
方法,使他們的軌道在一個Map<String, GenericCallable>
並添加或根據收到的通知移除它們。
另外,這樣一個界面應該如何命名呢?
很多人似乎更喜歡Java Observer pattern,但定義的Observable class並不方便,因爲它不是一個規避單一繼承的接口,它具有比以上簡單場景中實際需要的功能更多的功能。
呃,怎麼樣'Observer' http://docs.oracle.com/javase/7/docs/api/java/util/Observer .html和'Observable' http://docs.oracle.com/javase/7/docs/api/java/util/Observable.html – 2013-03-07 00:00:50
「對於覆蓋hashCode()方法的情況需要該ID,以便被調用者識別來電者。「我沒有看到這部分 – newacct 2013-03-07 00:41:18
如果你有一個帶有hashCode()方法的「observable」對象,該方法根據對象狀態改變其返回值,並且跟蹤HashMap中的所有可觀察對象(例如,能夠在所有這些對象完成執行時斷言),那麼你無法匹配任何跟蹤的可觀察對象。 – PNS 2013-03-07 00:52:13