guava优雅的观察者模式

import org.junit.Test;

import com.google.common.eventbus.EventBus;
import com.google.common.eventbus.Subscribe;

public class TestEventBus {

	public class TestEvent {
	    private final int message;
	    public TestEvent(int message) {        
	        this.message = message;
	        System.out.println("event message:"+message);
	    }
	    public int getMessage() {
	        return message;
	    }
	}
	
	public class EventListener {
	    public int lastMessage = 0;

	    @Subscribe
	    public void listen(TestEvent event) {
	        lastMessage = event.getMessage();
	        System.out.println("Message:"+lastMessage);
	    }

	    public int getLastMessage() {      
	        return lastMessage;
	    }
	}
	
	@Test
    public void testReceiveEvent() throws Exception {

        EventBus eventBus = new EventBus("test");
        EventListener listener = new EventListener();

        eventBus.register(listener);

        eventBus.post(new TestEvent(200));
        eventBus.post(new TestEvent(300));
        eventBus.post(new TestEvent(400));
       
        System.out.println("LastMessage:"+listener.getLastMessage());
        
        eventBus.unregister(listener);
        
        eventBus.post(new TestEvent(500));
        
        System.out.println("LastMessage:"+listener.getLastMessage());
    }

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值