জেনেরিক ইন্টারফেস (Generic Interface) জাভার জেনেরিক্সের একটি বৈশিষ্ট্য যা প্রোগ্রামিংয়ের সময় টাইপ-সেইফটি নিশ্চিত করার পাশাপাশি কোডের ফ্লেক্সিবিলিটি এবং পুনঃব্যবহারযোগ্যতা বৃদ্ধি করে। জেনেরিক ইন্টারফেস বিভিন্ন টাইপের ডেটার জন্য একই ইন্টারফেস ব্যবহার করার সুযোগ দেয়, যা কোডকে আরো ডাইনামিক করে তোলে।
Generic Interface এর সুবিধা
- টাইপ সেফটি: কম্পাইল-টাইমে টাইপ চেকিং নিশ্চিত করে।
- কাস্টিং এড়ানো: টাইপ কাস্টিং এর প্রয়োজনীয়তা দূর করে।
- পুনঃব্যবহারযোগ্যতা: একই ইন্টারফেস বিভিন্ন টাইপের জন্য ব্যবহার করা যায়।
- রিডেবল এবং মডুলার কোড: কোডকে রিডেবল এবং সহজে ব্যবস্থাপনা করা যায়।
Generic Interface সংজ্ঞা
public interface GenericInterface<T> {
void display(T data);
T getData();
}
এখানে:
GenericInterface<T>একটি জেনেরিক ইন্টারফেস, যেখানেTএকটি টাইপ প্যারামিটার।Tব্যবহার করে যেকোনো টাইপের ডেটা পাস করা যায়।
Generic Interface বাস্তবায়ন (Implementation)
1. নির্দিষ্ট টাইপ দিয়ে বাস্তবায়ন
public class StringData implements GenericInterface<String> {
private String data;
@Override
public void display(String data) {
this.data = data;
System.out.println("String Data: " + data);
}
@Override
public String getData() {
return data;
}
}
2. জেনেরিক টাইপ দিয়ে বাস্তবায়ন
public class GenericData<T> implements GenericInterface<T> {
private T data;
@Override
public void display(T data) {
this.data = data;
System.out.println("Data: " + data);
}
@Override
public T getData() {
return data;
}
}
ব্যবহারের উদাহরণ
নির্দিষ্ট টাইপের উদাহরণ:
public class Main {
public static void main(String[] args) {
GenericInterface<String> stringData = new StringData();
stringData.display("Hello, Generics!");
System.out.println("Retrieved Data: " + stringData.getData());
}
}
জেনেরিক টাইপের উদাহরণ:
public class Main {
public static void main(String[] args) {
GenericInterface<Integer> integerData = new GenericData<>();
integerData.display(100);
System.out.println("Retrieved Data: " + integerData.getData());
GenericInterface<Double> doubleData = new GenericData<>();
doubleData.display(3.14);
System.out.println("Retrieved Data: " + doubleData.getData());
}
}
Output:
নির্দিষ্ট টাইপের জন্য:
String Data: Hello, Generics!
Retrieved Data: Hello, Generics!
জেনেরিক টাইপের জন্য:
Data: 100
Retrieved Data: 100
Data: 3.14
Retrieved Data: 3.14
Complex উদাহরণ: Multiple Type Parameters সহ Generic Interface
public interface Pair<K, V> {
K getKey();
V getValue();
}
Implementation:
public class KeyValue<K, V> implements Pair<K, V> {
private K key;
private V value;
public KeyValue(K key, V value) {
this.key = key;
this.value = value;
}
@Override
public K getKey() {
return key;
}
@Override
public V getValue() {
return value;
}
}
ব্যবহারের উদাহরণ:
public class Main {
public static void main(String[] args) {
Pair<String, Integer> pair = new KeyValue<>("Age", 30);
System.out.println("Key: " + pair.getKey());
System.out.println("Value: " + pair.getValue());
}
}
Output:
Key: Age
Value: 30
Generic Interface ব্যবহার করে জাভায় টাইপ-সেইফ এবং ফ্লেক্সিবল কোড তৈরি করা সহজ হয়। এটি বড় আকারের প্রজেক্টে বিশেষভাবে উপযোগী যেখানে বিভিন্ন টাইপের ডেটা ব্যবস্থাপনা করতে হয়।
Generic Interface ব্যবহারের ক্ষেত্রে:
- একাধিক টাইপের ডেটার জন্য একই ইন্টারফেস ব্যবহার করা যায়।
- টাইপ কাস্টিং এড়ানো হয়।
- কোডের পুনঃব্যবহারযোগ্যতা বাড়ে।
Content added By
Read more