EventListenerSupport实现事件监听

EventListenerSupport是apache lang3包提供用于处理事件监听的解决方案。

pom

1
2
3
4
5
 <dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-lang3</artifactId>
<version>3.4</version>
</dependency>

使用

  1. 创建监听器接口

    1
    2
    3
    4
    public interface IListener {

    void onListener();
    }
  2. 通过接口创建EventListenerSupport

    1
    EventListenerSupport<IListener> eventListener = EventListenerSupport.create(IListener.class);
  3. 实现监听器

    1
    2
    3
    4
    5
    6
    public class TestListener implements IListener {

    public void onListener() {
    System.out.println("test");
    }
    }
  4. 向EventListenerSupport注册监听器

    1
    eventListener.addListener(new TestListener());
  5. 事件发生时,触发监听器.fire方法会返回IListener的代理类.运行IListener的方法,会通过代理运行所有注册监听器的相同方法.

    1
    eventListener.fire().onListener();