// 이벤트 발행자classEventPublisher {privateList<EventListener> listener =newArrayList<>();// 이벤트를 발행하는 메서드publicvoidpublishEvent(MyEvent event) {for (EventListener listener : listeners) {listener.onEvent(event); } }// 이벤트 구독자 등록publicvoidaddEventListener(EventListener listener) {listeners.add(listener); }}
이벤트 구독자
// 이벤트 구독자 인터페이스interfaceEventListener {voidonEvent(MyEvent event);}// 이벤트 구독자classEventSubscriberimplementsEventListener { @OverridepublicvoidonEvent(MyEvent event) {System.out.println("이벤트 수신: "+event.getMessage()); }}
이벤트 발행과 수신
publicclassEventExample {publicstaticvoidmain(String[] args) {// 이벤트 발행자 생성EventPublisher eventPublisher =newEventPublisher();// 이벤트 구독자 생성 및 등록EventSubscriber subscriber1 =newEventSubscriber();eventPublisher.addEventListener(subscriber1);EventSubscriber subscriber2 =newEventSubscriber();eventPublisher.addEventListener(subscriber2);// 이벤트 발행MyEvent event =newMyEvent("안녕하세요!");eventPublisher.publishEvent(event); }}