ইন্টারফেসে স্ট্যাটিক মেথড (Static methods in interfaces)
পৃথক ইউটিলিটি ক্লাসের পরিবর্তে সরাসরি ইন্টারফেসে স্ট্যাটিক ইউটিলিটি মেথড যোগ করুন।
কোড তুলনা
✕ Java 7
// Separate utility class needed
public class ValidatorUtils {
public static boolean isBlank(
String s) {
return s == null ||
s.trim().isEmpty();
}
}
// Usage
if (ValidatorUtils.isBlank(input)) { ... }
✓ Java 8+
public interface Validator {
boolean validate(String s);
static boolean isBlank(String s) {
return s == null ||
s.trim().isEmpty();
}
}
// Usage
if (Validator.isBlank(input)) { ... }
এই কোডে সমস্যা দেখছেন? আমাদের জানান।
কেন আধুনিক পদ্ধতি ভালো
উন্নত অর্গানাইজেশন
ইন্টারফেসের সাথে সম্পর্কিত ইউটিলিটিগুলোকে একটি আলাদা ক্লাসে না রেখে একসাথেই রাখুন।
ডিসকভারেবিলিটি (Discoverability)
ফ্যাক্টরি এবং হেল্পার মেথডগুলোকে যেখানে আশা করা হয়, সেখানেই খুঁজে পাওয়া যায়।
API কোহেশন (API Cohesion)
আলাদা *Utils বা *Helper ক্লাসের প্রয়োজন নেই।
পুরনো পদ্ধতি
ইউটিলিটি ক্লাস
আধুনিক পদ্ধতি
ইন্টারফেস স্ট্যাটিক মেথডস (Interface static methods)
JDK থেকে
8
কঠিনতা
প্রাথমিক
JDK সমর্থন
ইন্টারফেসে স্ট্যাটিক মেথড (Static methods in interfaces)
উপলব্ধ
JDK 8 (মার্চ 2014) থেকে উপলব্ধ
কীভাবে কাজ করে
Java 8 এর আগে, একটি ইন্টারফেসের সাথে সম্পর্কিত ইউটিলিটি মেথডগুলোকে একটি আলাদা ক্লাসে রাখতে হতো (যেমন Collections for Collection)। ইন্টারফেসগুলোতে স্ট্যাটিক মেথড আপনাকে সম্পর্কিত ইউটিলিটিগুলো একসাথে রাখতে দেয়। এটি Comparator.comparing(), Stream.of(), এবং List.of()-এর মতো আধুনিক API-গুলোতে খুবই কমন।
সম্পর্কিত ডকুমেন্টেশন
প্রমাণ