Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Java

กฎสำหรับส่วนต่อประสานผู้เผยแพร่ใน Java 9 คืออะไร


A ผู้เผยแพร่ เป็นผู้ให้บริการขององค์ประกอบที่จัดลำดับจำนวนไม่ จำกัด เผยแพร่ตามความต้องการที่ได้รับจากสมาชิก สำนักพิมพ์ อินเทอร์เฟซมีหน้าที่เผยแพร่องค์ประกอบประเภท T และให้ subscribe() วิธีการสำหรับสมาชิกเพื่อเชื่อมต่อ

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

กฎสำหรับอินเทอร์เฟซผู้เผยแพร่:

  • จำนวนรวมของ onNext() วิธีการส่งสัญญาณโดย ผู้เผยแพร่ ถึง สมาชิก ต้องน้อยกว่าหรือเท่ากับจำนวนองค์ประกอบทั้งหมดที่ร้องขอโดยสมาชิก การสมัคร ตลอดเวลา
  • A สำนักพิมพ์ อาจส่งสัญญาณน้อยลง onNext() เมธอดกว่าที่ร้องขอ และยุติ การสมัครสมาชิก โดยเรียก onComplete() หรือ onError() วิธีการ
  • onSubscribe() , onNext() , onError() และ onComplete() วิธีการส่งสัญญาณไปยัง สมาชิก ต้องส่งสัญญาณเป็นลำดับ
  • หากผู้เผยแพร่ล้มเหลว ผู้เผยแพร่จะต้องส่งสัญญาณ onError() วิธีการ
  • หากผู้เผยแพร่โฆษณายุติได้สำเร็จ ผู้เผยแพร่จะต้องส่งสัญญาณ onComplete() วิธีการ
  • หากผู้เผยแพร่ให้สัญญาณ onError() หรือ onComplete() วิธีการใน สมาชิก จะต้องยกเลิกการสมัครเป็นสมาชิก
  • เมื่อสถานะเทอร์มินัลส่งสัญญาณแล้ว (onError() , onComplete() ) จะต้องไม่มีสัญญาณเกิดขึ้นอีก
  • หากการสมัครถูกยกเลิก สมาชิกจะต้องหยุดการส่งสัญญาณ
  • Publisher.subscribe() เมธอดต้องเรียก onSubscribe() วิธีการของสมาชิกที่ให้ไว้ก่อนที่จะส่งสัญญาณอื่น ๆ ไปยัง สมาชิก และกลับมาเป็นปกติ ยกเว้นเมื่อ Subscriber ที่ให้มานั้นเป็นโมฆะ ในกรณีนี้จะต้องส่ง NullPointerException ถึงผู้โทร
  • Publisher.subscribe() เมธอดอาจโทรได้หลายครั้งตามต้องการกับ Subscriber คนละคนในแต่ละครั้ง
  • A ผู้เผยแพร่ อาจสนับสนุนสมาชิกหลายคนและตัดสินใจว่าแต่ละการสมัครสามารถเป็น unicast . ได้หรือไม่ หรือ มัลติคาสต์ .