Interable ←→ Observable (duality 상대성) pull push
-
Observable
은 java9에서 deprecated 됨 -
observable → source, event source, event 를 던짐
-
observer에게 던짐(관찰자에게 던짐)
-
observer를 observable에게 등록시킨다.
-
observable이 observer에 notify한다.
-
-
Observable: 생성자, **
-
Observer: 관찰자, **
// 커스텀 옵져버블
// - 값을 생성한다.
// - event source
// - gof: 서브젝트
// - reactive streams: 퍼블리셔
// - reactive extentions: 옵저버블
static class IntObservable extends Obsevable implements Runable {
@Override
public void run() {
Arrays.asList(1, 2, 3, 4, 5).forEach(i -> {
setChanged();
notifyObservers(i);
});
}
}
public static void main(String[] args) {
// 옵져버
// - 값을 관창한다.
// - gof: 옵저버
// - reactive strems: 서브스크라이버
// - reactive extentions: 서브스크라이버 or 옵저버
Observer ob = new Observer() {
@Override
public void update(Observable o, Object arg) {
}
}
}
DATA method() ←→ method(DATA) 기능은 같지만, 상대성 / 카테고리 이론에서 상대성이라고 한다.
ExcutorService es = Excutors.newSingleThreadExecutor(); // 스레드를 하나 받는다? es.execute(runneable)