둘다 자주 나오지만 이름도 비슷한게 정확한 차이점에 대해 궁금해졌다.
그래서 여기저기 찾아다니며 알아봤는데 차이점은 아래와 같다.
Observable은 int, String 등등 여러 형태의 데이터를 관찰할 수 있는 즉 Observer 가 사용할 수 있는 형태로 바꾸는 역할을 한다.
Observer 는 Observable 로 만들어진 데이터를 전달받고 그 데이터로 특정 행동을 취하는 역할을 한다.
아래 그림을 보면 더 이해하기 편하다.
Observable<String> observable = Observable
.just("test1", "test2")
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread());
observable.subscribe(new Observer<String>() {
@Override
public void onSubscribe(Disposable d) {
}
@Override
public void onNext(String s) {
Log.d(TAG, "onNext: " + s);
}
@Override
public void onError(Throwable e) {
}
@Override
public void onComplete() {
Log.d(TAG, "onComplete: ");
}
});
위 코드를 실행해보면
onNext : test1
onNext : test2
onComplete :
라는 결과가 나오는걸 보고 우리는
Observable 이 String 형식으로 Observer 가 사용할 수 있도록 데이터를 가공하고 just 연산자로 데이터를 전달했구나!
라고 알 수 있다.
반응형
'Android > RxJava, RxKotlin' 카테고리의 다른 글
RxJava - subscribeOn, observeOn 를 제대로 쓰고 있는걸까? (0) | 2021.10.20 |
---|---|
RxJava - Hot Observable , Cold Observable (0) | 2021.10.20 |
RxJava를 Event Bus 처럼 쓰기 (0) | 2021.10.05 |
RxJava - Observable을 제외한 다른 생산자들 (0) | 2021.06.12 |
RxJava - 시작하기 (0) | 2021.06.12 |
RxJava , RxKotiln 이란? (0) | 2021.06.08 |