什么应该是最好的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