الدوال الثابتة في الواجهات
أضف دوال أدوات ثابتة مباشرةً للواجهات بدلاً من فئات أدوات منفصلة.
مقارنة الكود
✕ 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)) { ... }
هل ترى مشكلة في هذا الكود؟ أخبرنا.
لماذا يتفوق الأسلوب الحديث
تنظيم أفضل
أبقِ الأدوات ذات الصلة مع الواجهة لا في فئة منفصلة.
قابلية الاكتشاف
دوال المصنع والمساعدة موجودة أين تتوقعها.
تماسك الواجهة البرمجية
لا حاجة لفئات *Utils أو *Helper منفصلة.
الأسلوب القديم
فئات الأدوات
الأسلوب الحديث
الدوال الثابتة في الواجهات
منذ JDK
8
الصعوبة
مبتدئ
دعم JDK
الدوال الثابتة في الواجهات
متاح
متاح منذ JDK 8 (مارس 2014)
كيف يعمل
قبل Java 8، كانت دوال الأدوات المرتبطة بواجهة يجب أن تعيش في فئة منفصلة (مثل Collections لـ Collection). تتيح الدوال الثابتة في الواجهات إبقاء الأدوات ذات الصلة معاً. شائعة في الواجهات البرمجية الحديثة مثل Comparator.comparing() و Stream.of() و List.of().
توثيق ذو صلة