我有一个正在生成事件的发布者类,以及一些想要订阅事件以便运行自己的回调的侦听器类。
所有这些听众课程都是事先知道的。
我的所有听众在申请初始时订阅发布商的最佳方式是什么?我宁愿所有特定于侦听器的代码都是侦听器类的一部分。我认为监听器可以在静态块(Object)中订阅发布者,但是根据我的理解Java延迟加载类,所以不能保证所有监听器都会立即订阅。为了避免这种情况,我可能会做一些事情来强制JVM立即加载我的所有监听器?
我缺少哪些更简单的东西?
答案 0 :(得分:2)
使用演员!每个发布者一个参与者,每个订阅者一个参与者。发布者维护订阅者列表。通过向发布者发送消息来添加订阅者:pub!添加(分)
当发布者要发布内容时,它会遍历每个订阅者和消息列表。请参阅http://www.scala-lang.org/node/242了解演员介绍。
答案 1 :(得分:1)