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

กฎสำหรับอินเทอร์เฟซการสมัครสมาชิกใน Java 9 คืออะไร


A สมัครสมาชิก สามารถแชร์โดยผู้เผยแพร่หนึ่งรายและสมาชิกหนึ่งรายเพื่อวัตถุประสงค์ในการเป็นสื่อกลาง ข้อมูล แลกเปลี่ยน . นั่นคือเหตุผล subscribe() เมธอดไม่ส่งคืนการสมัครสมาชิกที่สร้างขึ้น แต่จะคืนค่า โมฆะ . การสมัครรับข้อมูลจะถูกส่งต่อไปยังผู้สมัครสมาชิกผ่านทาง onSubscribe() . เท่านั้น วิธีการโทรกลับ อินเทอร์เฟซการสมัครรับข้อมูลมีสองวิธี:request() และ ยกเลิก() .

ไวยากรณ์

public interface Subscription {
   public void request(long n);
   public void cancel();
}

กฎสำหรับอินเทอร์เฟซการสมัคร:

  • Subscription.request() และ Subscription.cancel() ต้องเรียกเมธอดภายในบริบทสมาชิกเท่านั้น
  • การสมัครต้องอนุญาตให้สมาชิกเรียก Subscription.request() เมธอดพร้อมกันจากภายใน onNext() หรือ onSubscribe() วิธีการ
  • Subscription.request() เมธอดต้องวางขอบเขตบนในการเรียกซ้ำแบบซิงโครนัสที่เป็นไปได้ระหว่าง ผู้เผยแพร่ และ สมาชิก .
  • Subscription.request() วิธีการควรเคารพการตอบสนองของผู้โทรโดยการส่งคืนในเวลาที่เหมาะสม
  • Subscription.cancel() เมธอดต้องเคารพการตอบสนองของผู้โทรโดยการส่งคืนในเวลาที่เหมาะสม และต้องปลอดภัยสำหรับเธรด .
  • ในขณะที่การสมัครไม่ถูกยกเลิก Subscription.request(long n) เมธอดจะต้องลงทะเบียนองค์ประกอบเพิ่มเติมตามจำนวนที่กำหนดเพื่อผลิตให้กับสมาชิกแต่ละคน
  • ในขณะที่การสมัครไม่ถูกยกเลิก Subscription.request(long n) เมธอดต้องเรียก onError() เมธอดด้วย IllegalArgumentException ถ้าอาร์กิวเมนต์คือ <=0
  • ในขณะที่การสมัครไม่ถูกยกเลิก Subscription.request(long n) เมธอดอาจเรียก onNext() . พร้อมกัน วิธีการนี้หรือสมาชิกรายอื่น
  • ในขณะที่การสมัครไม่ถูกยกเลิก Subscription.request(long n) เมธอดอาจเรียก onComplete() . พร้อมกัน หรือ onError() วิธีการนี้หรือสมาชิกรายอื่น
  • แม้ว่าการสมัครจะไม่ถูกยกเลิก Subscription.cancel() วิธีการต้องขอให้ผู้เผยแพร่หยุดการส่งสัญญาณของสมาชิก ไม่จำเป็นต้องดำเนินการให้มีผลกับการสมัครสมาชิกทันที
  • แม้ว่าการสมัครจะไม่ถูกยกเลิก Subscription.cancel() เมธอดต้องขอให้ผู้เผยแพร่ยกเลิกการอ้างอิงใด ๆ ไปยังสมาชิกที่เกี่ยวข้อง
  • กำลังโทร Subscription.cancel() และ Subscription.request () เมธอดต้องกลับมาเป็นปกติ
  • การสมัครสมาชิก ต้องรองรับจำนวนการโทรที่ไม่จำกัดเพื่อขอและรองรับความต้องการสูงสุด 2^63-1 . หากความต้องการเท่ากับหรือมากกว่า 2^63-1 อาจได้รับการพิจารณาโดยผู้จัดพิมพ์ว่า มีประสิทธิภาพ ไม่จำกัด .