一、介绍
监听器模式是一种软件设计模式,在对象的状态发生改变时,允许依赖它的其他对象获得通知。在Java中,可以使用接口和回调机制来实现监听器模式。
二、代码实例
1、事件Event类
package com.xu.demo.listener;
// 事件类
public class Event {
private String message;
public Event(String message) {
this.message = message;
}
public String getMessage() {
return message;
}
}
2、 事件监听器接口EventListener
package com.xu.demo.listener;
public interface EventListener {
void onEvent(Event event);
}
3、自定义监听器MyListener
package com.xu.demo.listener;
// 监听器实现
public class MyListener implements EventListener {
@Override
public void onEvent(Event event) {
System.out.println("Event received: " + event.getMessage());
}
}
4、事件管理器EventManager,监听所有的事件
package com.xu.demo.listener;
import java.util.ArrayList;
import java.util.List;
// 事件管理器,用于注册和触发事件
public class EventManager {
private List<EventListener> listeners = new ArrayList<>();
public void registerListener(EventListener listener) {
listeners.add(listener);
}
public void triggerEvent(Event event) {
for (EventListener listener : listeners) {
listener.onEvent(event);
}
}
}
5、生产事件
package com.xu.demo.listener;
public class ListenerPattern {
public static void main(String[] args) {
EventManager eventManager = new EventManager();
EventListener myListener = new MyListener();
eventManager.registerListener(myListener);
eventManager.triggerEvent(new Event("Hello, World!"));
}
}
运行结果: