Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> Java

Các quy tắc cho interface Publisher trong Java 9?

Publisher là provider của số lượng không giới hạn các phần tử sequenced, phát hành theo nhu cầu nhận từ Subscriber. Interface Publisher<T> chịu trách nhiệm phát hành phần tử kiểu T và cung cấp phương thức subscribe() để subscriber kết nối.

public interface Publisher<T> {
    public void subscribe(Subscriber<? super T> s);
}

Quy tắc cho interface Publisher:

  • Tổng số phương thức onNext() do Publisher gửi cho Subscriber phải nhỏ hơn hoặc bằng tổng số phần tử được yêu cầu bởi Subscription của Subscriber tại mọi thời điểm.
  • Publisher có thể gửi ít onNext() hơn yêu cầu, và chấm dứt Subscription bằng cách gọi onComplete() hoặc onError().
  • Các phương thức onSubscribe(), onNext(), onError(), onComplete() gửi cho Subscriber phải được gửi tuần tự (serially).
  • Nếu Publisher thất bại, phải gửi onError().
  • Nếu Publisher kết thúc thành công, phải gửi onComplete().
  • Nếu Publisher gửi onError() hoặc onComplete() cho Subscriber, thì Subscription của Subscriber phải bị hủy.
  • Khi trạng thái terminal đã gửi (onError(), onComplete()), yêu cầu không có tín hiệu nào khác xảy ra.
  • Nếu Subscription bị hủy, Subscriber phải ngừng được gửi tín hiệu.
  • Publisher.subscribe() phải gọi onSubscribe() trên Subscriber cung cấp trước bất kỳ tín hiệu nào khác và trả về bình thường, trừ khi Subscriber cung cấp là null – lúc đó ném NullPointerException cho caller.
  • Publisher.subscribe() có thể gọi bao nhiêu lần tùy ý với Subscriber khác nhau mỗi lần.
  • Publisher có thể hỗ trợ nhiều Subscriber và quyết định mỗi Subscription là unicast hay multicast.