Java 自定义事件创建
当尝试建立对象交互涉及特定事件的响应机制时,观察者模式作为一种可行的解决方案出现。利用这种模式,对象可以订阅感兴趣的事件,并且在这些事件发生时,它们将被通知采取适当的操作。
Java 实现
考虑以下代码片段作为示例:
import java.util.*; // HelloEvent: Represents an event of "Hello" class HelloEvent { private String message; public HelloEvent(String message) { this.message = message; } public String getMessage() { return message; } } // HelloListener: Interface for objects interested in "Hello" events interface HelloListener { void onHello(HelloEvent event); } // Initiater: Publishes "Hello" events class Initiater { private List<HelloListener> listeners = new ArrayList<>(); public void addListener(HelloListener listener) { listeners.add(listener); } public void sayHello(String message) { HelloEvent event = new HelloEvent(message); for (HelloListener listener : listeners) { listener.onHello(event); } } } // Responder: Subscribes to "Hello" events class Responder implements HelloListener { @Override public void onHello(HelloEvent event) { System.out.println("Hello there! " + event.getMessage()); } } public class CustomEventExample { public static void main(String[] args) { Initiater initiater = new Initiater(); Responder responder = new Responder(); initiater.addListener(responder); initiater.sayHello("Good morning!"); // Prints "Hello there! Good morning!" } }
说明
在此示例中,HelloEvent 类封装了事件数据(在本例中为问候消息)。 HelloListener 接口定义了订阅者必须实现的方法来处理事件通知。 Initiator代表触发事件并维护订阅者列表的对象。 Responder 是在“Hello”事件发生时响应的订阅者。
CustomEventExample 类演示了如何创建、发布和订阅自定义事件。当发起者调用 sayHello 方法时,它会触发一个 HelloEvent,该事件由响应者接收并处理。
这种方法提供了一种灵活的方式来在 Java 应用程序中的对象之间建立事件驱动的通信。
以上是如何在 Java 中创建和使用自定义事件?的详细内容。更多信息请关注PHP中文网其他相关文章!