কম্পিউটার টিউটোরিয়াল

জাভা ৯-এ Subscription ইন্টারফেসের নিয়মাবলী

একটি Subscription ঠিক এক Publisher এবং এক Subscriber দ্বারা শেয়ার করা হয় ডেটা এক্সচেঞ্জ মিডিয়েট করার উদ্দেশ্যে। তাই subscribe() মেথড তৈরি করা Subscription রিটার্ন করে না, বরং void রিটার্ন করে। Subscription শুধু Subscriber-কে onSubscribe() মেথড কলব্যাকের মাধ্যমে পাস করা হয়। Subscription ইন্টারফেস দুটি মেথড ধারণ করে: request() এবং cancel()।

সিনট্যাক্স

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

Subscription ইন্টারফেসের নিয়মাবলী:

  • Subscription.request() এবং Subscription.cancel() মেথড অবশ্যই এর Subscriber কনটেক্সটের ভিতরে কল করা উচিত।
  • Subscription অবশ্যই Subscriber-কে Subscription.request() মেথড সিনক্রোনাসলি onNext() বা onSubscribe() মেথড থেকে কল করার অনুমতি দিতে হবে।
  • Subscription.request() মেথড অবশ্যই Publisher এবং Subscriber-এর মধ্যে সম্ভাব্য সিনক্রোনাস রিকার্শনের একটি আপার বাউন্ড রাখতে হবে।
  • Subscription.request() মেথড তার কলারের রেসপনসিভিটি সম্মান করতে হবে টাইমলি রিটার্ন করে।
  • Subscription.cancel() মেথড তার কলারের রেসপনসিভিটি সম্মান করতে হবে টাইমলি রিটার্ন করে, এবং অবশ্যই থ্রেড-সেফ হতে হবে।
  • Subscription ক্যানসেল না হওয়া পর্যন্ত, Subscription.request(long n) মেথড একটি দেয়া সংখ্যক অতিরিক্ত এলিমেন্ট রেজিস্টার করতে হবে সংশ্লিষ্ট সাবস্ক্রাইবারের জন্য প্রোডিউস করা।
  • Subscription ক্যানসেল না হওয়া পর্যন্ত, Subscription.request(long n) মেথড onError() মেথড কল করতে হবে IllegalArgumentException সহ যদি আর্গুমেন্ট <= ০ হয়।
  • Subscription ক্যানসেল না হওয়া পর্যন্ত, Subscription.request(long n) মেথড এই বা অন্যান্য সাবস্ক্রাইবারের ওপর সিনক্রোনাসলি onNext() মেথড কল করতে পারে।
  • Subscription ক্যানসেল না হওয়া পর্যন্ত, Subscription.request(long n) মেথড এই বা অন্যান্য সাবস্ক্রাইবারের ওপর সিনক্রোনাসলি onComplete() বা onError() মেথড কল করতে পারে।
  • Subscription ক্যানসেল না হওয়া পর্যন্ত, Subscription.cancel() মেথড Publisher-কে এর Subscriber-কে সিগন্যাল করা বন্ধ করার জন্য রিকোয়েস্ট করতে হবে। অপারেশনটি অবিলম্বে Subscription-কে প্রভাবিত করতে বাধ্য নয়।
  • Subscription ক্যানসেল না হওয়া পর্যন্ত, Subscription.cancel() মেথড Publisher-কে সংশ্লিষ্ট সাবস্ক্রাইবারের যেকোনো রেফারেন্স ড্রপ করার জন্য রিকোয়েস্ট করতে হবে।
  • Subscription.cancel() এবং Subscription.request() মেথড কল অবশ্যই নরমালি রিটার্ন করতে হবে।
  • Subscription অবশ্যই request-এ অনবাউন্ড সংখ্যক কল সাপোর্ট করতে হবে এবং 2^63-1 পর্যন্ত ডিমান্ড সাপোর্ট করতে হবে। যদি ডিমান্ড 2^63-1-এর সমান বা বেশি হয়, তবে Publisher এটিকে ইফেক্টিভলি অনবাউন্ড হিসেবে বিবেচনা করতে পারে।
  1. জাভা ৯-এ @Deprecated অ্যানোটেশনের উন্নতি

  2. জাভাতে paint() মেথড এবং repaint() মেথড-এর মধ্যে পার্থক্য কী?

  3. জাভাতে এক্সেপশন থ্রো করার মেথড ওভাররাইড করার সময় কী নিয়মাবলী মেনে চলতে হয়?

  4. জাভা মেথড ওভাররাইডিংয়ের নিয়মাবলি