DesignPatterns에서 BehavioralPatterns의 하나.
객체의 상태변화를 다른 객체에게 통지. 관찰자(Observer)는 대상으로부터, 변화를 통지받는다.
Structure
Example in our project
RandomNumber 생성자의 변화감지 ObserverGenerator.java
- digit observer와 graph observer가 생성기의 변화를 감지한다. 생성기는 xxx observer에가 자신의 변화를 통지한다.
- update로 감지하고, notifyObservers로 통지한다.
관련정보들
논의
ModelViewController에서의 model과 view의 관계는 ObserverPattern의 subject역할과 observer역할과 대응된다. 즉 model은 표시형식에 의존하지 않는 내부모델을 조작하는 부분이고, view는 어떻게 보여줄지를 관리하는 부분이다.
java.util.Observer 도 일종의 ObserverPattern. update메쏘드를 가진다.