
-
push vs poll
어떤 이벤트가 발생하면 진행되어야 할 후속 이벤트들이 있다면 이벤트를 발생하는쪽이 알려줘야(Push) 하는가? 아니면 이벤트를 수신하는 쪽이 이벤트를 관찰(Poll)하고 있어야 하는가?
-
알려줘야 할 대상(Subscriber)들을 소스코드에 하드코딩하여 관리해야 하는가
- publisher-subscriber(pub-sub)이라고도 한다.
- 객체들은 one(publisher)-to-many(subscriber) 관계를 가진다.
- subscriber는 publisher를 알지만 publisher는 subscriber를 알지 못한다. 즉 관계는 단방향이다.
- event driven아키텍처의 분산 이벤트 관리에서 많이 사용된다(https://en.wikipedia.org/wiki/Observer_pattern)
- 동시성 처리를 위해 observer가 subject-events를 수신할 때 멀티쓰레드로 동작할 필요도 있다.
- PropertyChangeSupport 를 사용한 observer 패턴 샘플
- observable(Subject, Publisher) : NewsAgency.java
- observer(Listener, Subscriber) : NewsChannel.java