Programing
Observer Pattern
BUST
2018. 9. 30. 22:17
Observer Pattern
- https://en.wikipedia.org/wiki/Observer_pattern
- 여러개의 observer를 가지고 있는 subject가 있고 상태가 변경이 되었을때 (state change) 자동으로 observer에게 notify를 한다.
- 객체가 1 to N로 의존성을 가지고 있을때
- 1개의 객체의 상태가 바꿨을때 의존하고 있는(dependent) 객체들이 자동으로 업데이트가 되어야 할때
Structure

Examples
import java.util.Observable;
import java.util.Scanner;
class EventSource extends Observable implements Runnable {
public void run() {
while (true) {
String response = new Scanner(System.in).next();
setChanged();
notifyObservers(response);
}
}
}
import java.util.Observable;
import java.util.Observer;
public class MyApp {
public static void main(String[] args) {
System.out.println("Enter Text: ");
EventSource eventSource = new EventSource();
eventSource.addObserver((obj, arg) -> {
System.out.println("Received response: " + arg)
});
new Thread(eventSource).start();
}
}