자바에서 커스텀 이벤트 만들기


만약에 어떤 오브젝트에서 "hello"라고 하면 오브젝트2에서 "hello"하고 대답하는 그런 이벤트를 만들고싶은데 어떻게 하면 좋을지 잘모르겠어요. 간단한 예제 소스가 없을까요?

  • 2016년 02월 07일에 작성됨

조회수 421


1 답변


좋아요
0
싫어요
채택취소하기

제 생각엔 옵저버 패턴을 찾는것 같은데요. 옵저버 패턴에 대한 개념은 http://warmz.tistory.com/entry/Observer-Pattern-%EC%98%B5%EC%A0%80%EB%B2%84-%ED%8C%A8%ED%84%B4 여기에 잘 설명되있으니 참고하시면 좋을것 같습니다.

이건 샘플 코드입니다.

import java.util.*;

interface HelloListener {
    void someoneSaidHello();
}

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

    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();  // 누가 "Hello!!"라고 하면 다른 객체들이 "Hello there..."이라고 대답한다. 
    }
}
  • 2016년 02월 07일에 작성됨

로그인이 필요한 기능입니다.

Hashcode는 개발자들을 위한 무료 QnA사이트 입니다. 작성한 답변에 다른 개발자들이 댓글을 작성하거나 좋아요/싫어요를 할 수 있기 때문에 계정을 필요로 합니다.
► 로그인
► 계정만들기
Close