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中文網其他相關文章!