EventListenerSupport是apache lang3包提供用於處理事件監聽的解決方案。
pom
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-lang3</artifactId>
<version>3.4</version>
</dependency>
使用
- 創建監聽器接口
public interface IListener {
void onListener();
}
- 通過接口創建EventListenerSupport
EventListenerSupport<IListener> eventListener = EventListenerSupport.create(IListener.class);
- 實現監聽器
public class TestListener implements IListener {
public void onListener() {
System.out.println("test");
}
}
- 向EventListenerSupport註冊監聽器
eventListener.addListener(new TestListener());
- 事件發生時,觸發監聽器.fire方法會返回IListener的代理類.運行IListener的方法,會通過代理允許所有註冊監聽器的相同方法.
eventListener.fire().onListener();