当前位置: 首页 > 知识库问答 >
问题:

java中的共享事件

施飞驰
2023-03-14

}

在另一边我有一个听众

类TrafficListener{
public static void watchNewTraffic()
{//在出现新流量时执行某些操作}}

我发现有Observer和Observable,但我需要实现Observer的方法,我发现Propertychangelistener在我的情况下是没用的,因为我有静态方法

共有1个答案

国高杰
2023-03-14

首先,您应该从TrafficListener.WatchNewTraffic()方法中删除Statice修饰符。否则,您不能有多个侦听器。更好的是,您应该使TrafficListener成为一个接口:

interface TrafficListener {
    void watchNewTraffic();
}

每个想要成为侦听器的类都需要实现接口。然后,您可以在TrafficController类中维护侦听器集合:

class TrafficController {
    private static Set<TrafficListener> listeners = new HashSet<>();

    public static void controlTraffic() {
        // do stuff
        notifyListeners();
    }

    public static void addTrafficListener(TrafficListener listener) {
        listeners.add(listener);
    }

    public static void removeTrafficListener(TrafficListener listener) {
        listeners.remove(listener);
    }

    private static void notifyListeners() {
        for (TrafficListener listener : listeners) {
            listener.watchNewTraffic();
        }
    }
}

不过,你想要完成什么还不清楚。关于您的问题,我认为您应该考虑使用生产者-消费者模式,而不是观察者模式。

 类似资料:
  •        当我的空间的文件需要与同事协作,或者团队空间的文件需要与其他空间的成员进行共享时,则可以将文件共享给同事,共享方式如下: 1)开启共享给同事; 2)选择需要共享的同事; 3)设置共享权限,权限可设置:可编辑、仅下载、仅查看; 4)相应的同事即可在【共享给我的】文件列表查看到同事共享的文件,方便的进行协作; 5)也可以关闭共享,关闭后,其他的同事则无法查看此文档。

  • 问题内容: 我正在从python脚本中调用一个so文件。据我了解,我真的不需要释放使用ctypes在python中打开的共享库。但是,在我的so文件代码中,它dlopen另一个so文件并且不执行dlclose()。在这种情况下,从python端使用安全吗?我不必释放在ctypes内部加载的共享库soe文件吗? 问题答案: 始终遵循 “自己清洁后清理 ”的规则(尽管现代技术会为您提供清洁方面的帮助)

  • 问题内容: 是否可以使用Go创建共享库(.so)? 更新 :为此创建了一个“ 问题 ”。 问题答案: 现在可以使用标志 您需要做的是首先运行以下命令: (以上代码使所有通用软件包都可共享!)然后 最后,在编译代码时,您需要运行: 上面这些就是什么,而不是静态链接所有内容而仅动态链接它们,您最终将获得更小的编译文件。为了让您了解我的带有静态链接的“ hello.go”文件为2.3MB,而使用动态链接

  • 问题内容: AFAIK,Java中的内存基于堆,动态地将内存从堆分配给对象,并且没有共享内存的概念。 如果没有共享内存的概念,那么Java程序之间的通信应该很耗时。在C中,与其他通信方式相比,通过共享内存进行进程间通信更快。 如我错了请纠正我。这也是2个Java编排互相交谈的最快方法。 问题答案: 由于没有用于创建共享内存段的官方API,因此您需要使用帮助程序库/ DDL和JNI来使用共享内存来使

  • 问题内容: 我有一些cookie存储在http://sub1.myserver.com中 ,我希望能够在http://myserver.com中看到它们。 问题答案: 我能够使用以下代码来做到这一点:

  • 我正在用Nodejs做一个聊天室。为此,我使用了express、socket.io和http。我正在寻找通过http服务器进行文件共享的选项。首选的文件格式是图像文件(.jpg或.png)和文本文件。但我做不到。我尝试使用html的标记,但它没有将任何文件上传到服务器。 这是我的服务器端代码(server.js) null null 这是客户端代码(index.js) null null 对于前端