Observer এর ভূমিকা এবং কাজের প্রক্রিয়া

Observable এবং Observer - আরএক্সজাভা (RxJava) - Java Technologies

319

RxJava-তে Observer হলো একটি ইন্টারফেস, যা Observable-এর সাথে কাজ করে। এটি ডেটা স্ট্রিম পর্যবেক্ষণ করে এবং স্ট্রিম থেকে প্রাপ্ত ডেটা বা ইভেন্টগুলোতে প্রতিক্রিয়া জানায়।

Observer-এর ভূমিকা:

  1. ডেটা স্ট্রিম পর্যবেক্ষণ:
    Observer Observable-এর তৈরি ডেটা স্ট্রিম পর্যবেক্ষণ করে এবং নতুন ডেটা বা ইভেন্ট প্রাপ্ত হলে তা গ্রহণ করে।
  2. ইভেন্ট হ্যান্ডলিং:
    Observer তিন ধরনের ইভেন্ট পরিচালনা করতে পারে:
    • onNext(): যখন নতুন ডেটা আসে।
    • onError(): যখন কোনো ত্রুটি ঘটে।
    • onComplete(): যখন ডেটা স্ট্রিম সম্পূর্ণ হয়।
  3. রেসপন্স তৈরি:
    ডেটা বা ইভেন্টের উপর ভিত্তি করে Observer একটি নির্দিষ্ট অ্যাকশন বা রেসপন্স সম্পাদন করে।

Observer কাজের প্রক্রিয়া:

  1. Subscription:
    Observer একটি Observable-এর সাথে সংযুক্ত হয় (Subscribe করে), এবং এর ডেটা স্ট্রিম বা ইভেন্টগুলো পর্যবেক্ষণ শুরু করে।
  2. ইভেন্ট প্রাপ্তি:
    Observable থেকে ডেটা বা ইভেন্ট আসার সাথে সাথে Observer প্রাসঙ্গিক ইভেন্ট মেথড (onNext, onError, বা onComplete) কল করে।
  3. অ্যাকশন সম্পাদন:
    প্রতিটি ইভেন্টে নির্ধারিত অ্যাকশন বা অপারেশন সম্পাদিত হয়।

উদাহরণ: Observer-এর কাজ

import io.reactivex.Observable;
import io.reactivex.Observer;
import io.reactivex.disposables.Disposable;

public class ObserverExample {
    public static void main(String[] args) {
        // Observable তৈরি
        Observable<String> observable = Observable.just("Hello", "RxJava", "World");

        // Observer তৈরি
        Observer<String> observer = new Observer<String>() {
            @Override
            public void onSubscribe(Disposable d) {
                System.out.println("Subscribed to Observable");
            }

            @Override
            public void onNext(String s) {
                System.out.println("Received: " + s);
            }

            @Override
            public void onError(Throwable e) {
                System.err.println("Error occurred: " + e.getMessage());
            }

            @Override
            public void onComplete() {
                System.out.println("All data received. Completed!");
            }
        };

        // Observable-এ Observer যুক্ত করা
        observable.subscribe(observer);
    }
}

আউটপুট:

Subscribed to Observable
Received: Hello
Received: RxJava
Received: World
All data received. Completed!

মেথডসমূহের বিস্তারিত:

  1. onSubscribe(Disposable d):
    • Observable-এর সাথে Observer যুক্ত হলে প্রথমে এটি কল হয়।
    • এখানে আপনি Subscription ম্যানেজ করতে পারেন (যদি প্রয়োজন হয় Subscription বন্ধ করা)।
  2. onNext(T t):
    • Observable থেকে ডেটা প্রাপ্ত হলে এটি কল হয়।
    • প্রত্যেকটি ডেটার জন্য আলাদা করে onNext কল হয়।
  3. onError(Throwable e):
    • Observable-এ কোনো ত্রুটি ঘটলে এটি কল হয়।
    • একবার onError কল হলে, আর কোনো ডেটা বা ইভেন্ট পাঠানো হয় না।
  4. onComplete():
    • Observable থেকে সমস্ত ডেটা পাঠানোর পরে এটি কল হয়।
    • onComplete কল হলে, এটি নিশ্চিত করে যে ডেটা স্ট্রিম শেষ হয়েছে।

Observer এবং Observable-এর ইন্টারঅ্যাকশন:

  • Observable ডেটা ইমিট (emit) করে।
  • Observer সেই ডেটা গ্রহণ করে এবং নির্ধারিত ইভেন্ট হ্যান্ডলারে সাড়া দেয়।
  • Subscription-এর মাধ্যমে এই সম্পর্কটি সক্রিয় থাকে।

RxJava-তে Observer গুরুত্বপূর্ণ কারণ এটি অ্যাসিঙ্ক্রোনাস ইভেন্ট ড্রাইভেন প্রোগ্রামিং সহজ করে তোলে।

Content added By
Promotion

Are you sure to start over?

Loading...