[java] 사건-리스너 패턴

사건-리스너 패턴은 Java 프로그래밍에서 이벤트 처리의 유연성을 제공하기 위해 사용됩니다. 이 패턴은 객체 간 상호작용을 통해 이벤트 발생 시 관련된 작업을 수행하는 방식으로 동작합니다.

사건-리스너 패턴의 구성 요소

사건-리스너 패턴은 주로 세 가지 주요 구성 요소로 이루어집니다.

  1. 사건 발생자(Event Source): 이벤트가 발생한 객체로, 사건이 발생함을 알리는 역할을 합니다.
  2. 사건 리스너(Event Listener): 특정 사건이 발생했을 때 실행될 코드를 포함하는 인터페이스나 클래스입니다.
  3. 사건 객체(Event Object): 발생한 사건에 대한 정보를 포함하는 객체입니다.

예제 코드

다음은 Java에서의 사건-리스너 패턴을 구현한 간단한 예제 코드입니다.

import java.util.EventListener;

// 1. 사건 리스너 인터페이스 정의
interface MyEventListener extends EventListener {
    void onEventOccur(MyEventObject eventObject);
}

// 2. 사건 객체 정의
class MyEventObject {
    private String eventData;

    public MyEventObject(String eventData) {
        this.eventData = eventData;
    }

    public String getEventData() {
        return eventData;
    }
}

// 3. 사건 발생자 클래스 정의
class EventSource {
    private MyEventListener eventListener;

    public void setEventListener(MyEventListener eventListener) {
        this.eventListener = eventListener;
    }

    public void doSomething() {
        // 사건 발생 시 사건 객체를 생성하여 사건 리스너에 전달
        MyEventObject eventObject = new MyEventObject("Event data");
        eventListener.onEventOccur(eventObject);
    }
}

위의 코드는 사건-리스너 패턴을 표현하는 간단한 예제로, MyEventListener 인터페이스를 통해 리스너를 정의하고, EventSource 클래스를 통해 사건 발생자를 구현합니다.

결론

사건-리스너 패턴은 Java 애플리케이션에서 이벤트 기반 프로그래밍을 구현하기 위한 일반적인 방법 중 하나입니다. 이 패턴을 사용하면 코드의 모듈화와 유연성을 높일 수 있으며, 객체 간의 결합도를 줄이고 유지보수성을 향상시킬 수 있습니다.

참고문헌: Oracle Java Documentation