Page 20 -
P. 20
Reactive Streams에 선언된 인터페이스는 각각 다음과 같습니다.
예제 1-2 Publisher.java
// 데이터를 통지하는 생산자
public interface Publisher<T> {
// 데이터를 받는 Subscriber 등록
public void subscribe(Subscriber <? super T> subscriber);
}
예제 1-3 Subscriber.java
// 데이터를 받아 처리하는 소비자
public interface Subscriber<T> {
// 구독 시작 시 처리
public void onSubscribe(Subscription subscription);
// 데이터 통지 시 처리
public void onNext(T item);
// 에러 통지 시 처리
public void onError(Throwable error);
// 완료 통지 시 처리
public void onComplete();
}
예제 1-4 Subscription.java
// 생산자와 소비자를 연결하는 인터페이스
public interface Subscription {
// 통지받을 데이터 개수 요청
public void request(long num);
// 구독 해지
public void cancel();
}
예제 1-5 Processor.java
// Publisher와 Subscriber의 기능이 모두 있는 인터페이스
public abstract interface Processor<T, R> extends Subscriber<T>, Publisher<R> { }
028
RxJava 리액티브 프로그래밍(본문)최종.indd 28 2019-03-26 오전 11:26:30