读书人

Google Guava EventBus简单化生产/消费

发布时间: 2012-09-01 09:33:02 作者: rapoo

Google Guava EventBus简化生产/消费者模式使用


在Google Guava 10版本引入了EventBus, 它主要用来简化我们处理生产/消费者编程模型.

基本用法
使用Guava之后, 如果要订阅消息, 就不用再继承指定的接口, 只需要在指定的方法上加上@Subscribe注解即可:

@Testpublic void shouldGetEventsFromSubclass() throws Exception {     // given    EventBus eventBus = new EventBus("test");    IntegerListener integerListener = new IntegerListener();    NumberListener numberListener = new NumberListener();    eventBus.register(integerListener);    eventBus.register(numberListener);     // when    eventBus.post(new Integer(100));     // then    assertThat(integerListener.getLastMessage()).isEqualTo(100);    assertThat(numberListener.getLastMessage()).isEqualTo(100);     //when    eventBus.post(new Long(200L));     // then    // this one should has the old value as it listens only for Integers    assertThat(integerListener.getLastMessage()).isEqualTo(100);    assertThat(numberListener.getLastMessage()).isEqualTo(200L);}



参考原文:http://tomaszdziurko.pl/2012/01/google-guava-eventbus-easy-elegant-publisher-subscriber-cases/

读书人网 >编程

热点推荐