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 인터페이스는 구독자가 이벤트 알림을 처리하기 위해 구현해야 하는 메서드를 정의합니다. 개시자는 이벤트를 트리거하고 구독자 목록을 유지 관리하는 개체를 나타냅니다. 응답자는 "Hello" 이벤트가 발생할 때 응답하는 구독자입니다.
CustomEventExample 클래스는 사용자 정의 이벤트를 생성, 게시 및 구독하는 방법을 보여줍니다. Initiiater가 sayHello 메소드를 호출하면 Responder가 수신하고 처리하는 HelloEvent를 실행합니다.
이 접근 방식은 Java 애플리케이션의 객체 간에 이벤트 기반 통신을 설정하는 유연한 방법을 제공합니다.
위 내용은 Java에서 사용자 정의 이벤트를 생성하고 사용하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!