> Java > java지도 시간 > 관찰자 패턴을 사용하여 Java에서 사용자 정의 이벤트 시스템을 만드는 방법은 무엇입니까?

관찰자 패턴을 사용하여 Java에서 사용자 정의 이벤트 시스템을 만드는 방법은 무엇입니까?

Barbara Streisand
풀어 주다: 2024-12-04 18:06:18
원래의
682명이 탐색했습니다.

How to Create a Custom Event System in Java Using the Observer Pattern?

Java에서 맞춤 이벤트 만들기

Java에서는 관찰자 패턴을 사용하여 맞춤 이벤트 시스템을 구현할 수 있습니다. 이를 수행하는 방법은 다음과 같습니다.

이벤트 리스너 인터페이스 생성

첫 번째 단계는 이벤트 수신에 관심이 있는 모든 클래스에서 구현할 인터페이스를 정의하는 것입니다. 예를 들어, "hello" 이벤트에 응답하는 메서드가 있는 HelloListener라는 인터페이스가 있을 수 있습니다.

이벤트 이미터 클래스 생성

다음으로 이벤트를 발생시키는 클래스입니다. 이 클래스에는 이벤트 리스너를 추가하는 메서드와 이벤트를 실행하는 메서드가 있어야 합니다.

이벤트 리스너 클래스 생성

이제 이벤트를 수신할 클래스를 생성합니다. 이벤트에 응답하고 이에 응답합니다. 이 클래스는 이벤트 리스너 인터페이스를 구현하고 응답 메서드에 대한 구현을 제공해야 합니다.

모두 함께 사용

이벤트 시스템을 사용하려면 이벤트 이미터 클래스를 만들고 여기에 이벤트 리스너를 추가합니다. 이벤트를 실행하려면 이벤트 이미터에서 실행 메서드를 호출하세요. 이벤트 리스너는 알림을 받고 이에 따라 응답합니다.

예제 코드

다음은 관찰자 패턴을 사용하여 Java에서 사용자 정의 이벤트 시스템을 생성하는 방법에 대한 예입니다.

import java.util.*;

interface HelloListener {
    void someoneSaidHello();
}

class Initiater {
    private List<HelloListener> listeners = new ArrayList<>();

    public void addListener(HelloListener toAdd) {
        listeners.add(toAdd);
    }

    public void sayHello() {
        System.out.println("Hello!!");

        for (HelloListener hl : listeners)
            hl.someoneSaidHello();
    }
}

class Responder implements HelloListener {
    @Override
    public void someoneSaidHello() {
        System.out.println("Hello there...");
    }
}

class Test {
    public static void main(String[] args) {
        Initiater initiater = new Initiater();
        Responder responder = new Responder();

        initiater.addListener(responder);

        initiater.sayHello(); // Prints "Hello!!!" and "Hello there..."
    }
}
로그인 후 복사

위 내용은 관찰자 패턴을 사용하여 Java에서 사용자 정의 이벤트 시스템을 만드는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿