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

조회수 4649회

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

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..."이라고 대답한다. 
        }
    }
    

답변을 하려면 로그인이 필요합니다.

프로그래머스 커뮤니티는 개발자들을 위한 Q&A 서비스입니다. 로그인해야 답변을 작성하실 수 있습니다.

(ಠ_ಠ)
(ಠ‿ಠ)