PNS*_*PNS 2 java generics callback
什么应该是Java可以用作通用回调机制的首选接口或类似模式?
例如,它可能是类似的东西
public interface GenericCallback
{
public String getID();
public void callback(Object notification);
// or public void callback(String id, Object notification);
}
Run Code Online (Sandbox Code Playgroud)
覆盖hashCode()方法的情况下需要ID,以便被调用者识别调用者.
类似于上述的模式对于需要向条件(例如,处理结束)生成的类报告的对象是有用的.
在这种情况下,"父"类将使用getID()每个GenericCallback对象的方法来跟踪它们,Map<String, GenericCallable>并根据收到的通知添加或删除它们.
此外,如何实际命名这样的接口?
许多人似乎更喜欢Java Observer模式,但是在那里定义的Observable类并不方便,因为它不是绕过单一继承的接口,它承载的功能比上面简单的场景中实际需要的功能要多.
use*_*300 22
我会根据传递的Object类型对回调进行泛化.这对于侦听不同类事件的EventListener特别有用.例如
public interface Callback<T> {
public void callback(T t);
}
Run Code Online (Sandbox Code Playgroud)
您可以使用类型T作为Map中的键.当然,如果你想区分两个带有相同参数的回调,比如String,那么你需要像你的那样getID().
这里是关于将此用于事件监听器 的旧博客接口Events.Listener对应于Callback<T>上面的内容.和广播使用地图来追踪基于他们接受作为参数的类多听众.
| 归档时间: |
|
| 查看次数: |
16587 次 |
| 最近记录: |