Language প্রাথমিক

পৃথক ইউটিলিটি ক্লাসের পরিবর্তে সরাসরি ইন্টারফেসে স্ট্যাটিক ইউটিলিটি মেথড যোগ করুন।

✕ 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
কঠিনতা
প্রাথমিক
ইন্টারফেসে স্ট্যাটিক মেথড (Static methods in interfaces)
উপলব্ধ

JDK 8 (মার্চ 2014) থেকে উপলব্ধ

Java 8 এর আগে, একটি ইন্টারফেসের সাথে সম্পর্কিত ইউটিলিটি মেথডগুলোকে একটি আলাদা ক্লাসে রাখতে হতো (যেমন Collections for Collection)। ইন্টারফেসগুলোতে স্ট্যাটিক মেথড আপনাকে সম্পর্কিত ইউটিলিটিগুলো একসাথে রাখতে দেয়। এটি Comparator.comparing(), Stream.of(), এবং List.of()-এর মতো আধুনিক API-গুলোতে খুবই কমন।