Generics এর বাস্তব জীবনের উদাহরণ

Generics এর ভবিষ্যত এবং Industry Use-cases - জাভা জেনেরিক্স (Java Generics) - Java Technologies

365

জেনেরিক্স জাভার একটি শক্তিশালী ফিচার, যা টাইপ সেফটি এবং পুনঃব্যবহারযোগ্য কোড নিশ্চিত করে। জেনেরিক্সের বাস্তব জীবনের উদাহরণগুলি প্রধানত ডেটা ম্যানিপুলেশন, API ডেভেলপমেন্ট, এবং কালেকশন হ্যান্ডলিং-এ ব্যবহৃত হয়। নিচে জেনেরিক্সের ব্যবহারসহ বাস্তব জীবনের কিছু সাধারণ উদাহরণ আলোচনা করা হলো।


১. ডেটা ম্যানেজমেন্ট অ্যাপ্লিকেশন

ডেটা ম্যানেজমেন্ট অ্যাপ্লিকেশন তৈরি করার সময় জেনেরিক্স ব্যবহার করা হয় যাতে বিভিন্ন ডেটা টাইপকে পরিচালনা করা যায়।

উদাহরণ: Generic Repository Pattern

import java.util.*;

public class GenericRepository<T> {
    private List<T> data = new ArrayList<>();

    public void add(T item) {
        data.add(item);
    }

    public T get(int index) {
        return data.get(index);
    }

    public List<T> getAll() {
        return new ArrayList<>(data);
    }

    public static void main(String[] args) {
        GenericRepository<String> userRepository = new GenericRepository<>();
        userRepository.add("Alice");
        userRepository.add("Bob");

        System.out.println(userRepository.getAll()); // [Alice, Bob]
    }
}

২. ওয়েব API ডেভেলপমেন্ট

জেনেরিক্স API রেসপন্স বা রিকোয়েস্ট মডেল তৈরি করার ক্ষেত্রে খুবই কার্যকর।

উদাহরণ: Generic API Response Class

public class ApiResponse<T> {
    private String status;
    private T data;

    public ApiResponse(String status, T data) {
        this.status = status;
        this.data = data;
    }

    public String getStatus() {
        return status;
    }

    public T getData() {
        return data;
    }

    public static void main(String[] args) {
        ApiResponse<String> response = new ApiResponse<>("success", "Data fetched successfully");
        System.out.println("Status: " + response.getStatus());
        System.out.println("Data: " + response.getData());
    }
}

৩. ফাইল প্রসেসিং সিস্টেম

ফাইল প্রসেসিং সিস্টেমে বিভিন্ন ধরনের ফাইল হ্যান্ডল করার জন্য জেনেরিক্স ব্যবহার করা হয়।

উদাহরণ: File Processor Class

public class FileProcessor<T> {
    private T fileContent;

    public FileProcessor(T fileContent) {
        this.fileContent = fileContent;
    }

    public void process() {
        System.out.println("Processing: " + fileContent.toString());
    }

    public static void main(String[] args) {
        FileProcessor<String> textProcessor = new FileProcessor<>("This is a text file.");
        FileProcessor<Integer> dataProcessor = new FileProcessor<>(12345);

        textProcessor.process();
        dataProcessor.process();
    }
}

৪. ই-কমার্স অ্যাপ্লিকেশন

ই-কমার্স অ্যাপ্লিকেশনে প্রোডাক্ট মডেল তৈরিতে জেনেরিক্স ব্যবহার করা হয়।

উদাহরণ: Product Management System

public class Product<T> {
    private T id;
    private String name;

    public Product(T id, String name) {
        this.id = id;
        this.name = name;
    }

    public T getId() {
        return id;
    }

    public String getName() {
        return name;
    }

    public static void main(String[] args) {
        Product<Integer> product1 = new Product<>(101, "Laptop");
        Product<String> product2 = new Product<>("A102", "Smartphone");

        System.out.println("Product 1: " + product1.getId() + " - " + product1.getName());
        System.out.println("Product 2: " + product2.getId() + " - " + product2.getName());
    }
}

৫. ব্যাংকিং সিস্টেম

ব্যাংক অ্যাপ্লিকেশন তৈরিতে বিভিন্ন একাউন্টের জন্য জেনেরিক্স ব্যবহার করা হয়।

উদাহরণ: Generic Bank Account

public class BankAccount<T> {
    private T accountNumber;
    private double balance;

    public BankAccount(T accountNumber, double balance) {
        this.accountNumber = accountNumber;
        this.balance = balance;
    }

    public T getAccountNumber() {
        return accountNumber;
    }

    public double getBalance() {
        return balance;
    }

    public static void main(String[] args) {
        BankAccount<Integer> savingsAccount = new BankAccount<>(123456, 5000.0);
        BankAccount<String> businessAccount = new BankAccount<>("BIZ-789", 10000.0);

        System.out.println("Savings Account: " + savingsAccount.getAccountNumber() + ", Balance: " + savingsAccount.getBalance());
        System.out.println("Business Account: " + businessAccount.getAccountNumber() + ", Balance: " + businessAccount.getBalance());
    }
}

৬. ডেটা ফিল্টারিং এবং প্রসেসিং

ডেটা ফিল্টারিংয়ের জন্য জেনেরিক্স এবং Lambda Expressions ব্যবহার করা হয়।

উদাহরণ: Generic Data Filter

import java.util.*;
import java.util.function.Predicate;

public class DataFilter<T> {
    public List<T> filter(List<T> list, Predicate<T> predicate) {
        List<T> result = new ArrayList<>();
        for (T item : list) {
            if (predicate.test(item)) {
                result.add(item);
            }
        }
        return result;
    }

    public static void main(String[] args) {
        DataFilter<Integer> filter = new DataFilter<>();
        List<Integer> numbers = Arrays.asList(1, 2, 3, 4, 5, 6);

        List<Integer> evenNumbers = filter.filter(numbers, n -> n % 2 == 0);

        System.out.println("Even Numbers: " + evenNumbers);
    }
}

৭. কালেকশন প্রসেসিং

কালেকশন API এর সাথে জেনেরিক্স ব্যবহার করা খুবই সাধারণ একটি উদাহরণ।

উদাহরণ: Custom Generic List Manager

import java.util.*;

public class ListManager<T> {
    private List<T> list = new ArrayList<>();

    public void addItem(T item) {
        list.add(item);
    }

    public T getItem(int index) {
        return list.get(index);
    }

    public List<T> getAllItems() {
        return list;
    }

    public static void main(String[] args) {
        ListManager<String> manager = new ListManager<>();
        manager.addItem("Apple");
        manager.addItem("Banana");

        System.out.println(manager.getAllItems()); // [Apple, Banana]
    }
}

জেনেরিক্স বাস্তব জীবনে প্রোগ্রামিং সমস্যার সমাধানে টাইপ সেফটি এবং কোড পুনঃব্যবহারযোগ্যতা নিশ্চিত করে। ই-কমার্স, ব্যাংকিং, ডেটা প্রসেসিং, এবং API ডেভেলপমেন্টসহ বিভিন্ন ক্ষেত্রে এর ব্যবহার খুবই কার্যকর। জেনেরিক্স ব্যবহার করলে কোড আরও রিডেবল, মেইনটেইনেবল এবং এক্সটেনসিবল হয়।

Content added By
Promotion

Are you sure to start over?

Loading...