자바에서 커스텀 이벤트 만들기
조회수 4660회
만약에 어떤 오브젝트에서 "hello"라고 하면 오브젝트2에서 "hello"하고 대답하는 그런 이벤트를 만들고싶은데 어떻게 하면 좋을지 잘모르겠어요. 간단한 예제 소스가 없을까요?
1 답변
-
제 생각엔 옵저버 패턴을 찾는것 같은데요. 옵저버 패턴에 대한 개념은 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..."이라고 대답한다. } }
댓글 입력