Guava之EventBus

EventBus 采用推的方式将消息发送给订阅者

public class SimpleListener
{
    private final static Logger LOGGER = LoggerFactory.getLogger(SimpleListener.class);

    @Subscribe
    public void doAction(final String event)
    {
        if (LOGGER.isInfoEnabled())
        {
            LOGGER.info("Received event [{}] and will take a action", event);
        }
    }
}

public class SimpleEventBusExample
{
    public static void main(String[] args)
    {
        final EventBus eventBus = new EventBus();
        eventBus.register(new SimpleListener());
        System.out.println("post the simple event.");
        eventBus.post("Simple Event");
    }
}

1)
Listener存在继承关系 AListener extend BListener 并且接收的消息类型都是 同一类型
生产者生产同一类型的事件 AListener 和 BListener 都能收到事件消息 ,并进行处理 。

2)
发送事件 有继承关系 AEvent extend BEvent
Listener 里面两个subScribe 一个监听 AEvent 一个监听BEvent
当生产者发送 AEvent 两个 方法都能接收到消息
当生产者发送BEvent 只有 监听 BEvent才能收到消息

你可能感兴趣的:(Guava之EventBus)