Interface'lerde statik metotlar
Ayrı yardımcı sınıflar yerine statik yardımcı metotları doğrudan interface'lere ekleyin.
Kod Karşılaştırması
✕ 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)) { ... }
Bu kodda bir sorun mu gördünüz? Bize bildirin.
Modern yöntem neden daha iyi
Daha iyi organizasyon
İlgili yardımcı araçları ayrı bir sınıfta değil, interface ile birlikte tutun.
Keşfedilebilirlik
Fabrika ve yardımcı metotlar, onları beklediğiniz yerde bulunur.
API uyumu
Ayrı *Utils veya *Helper sınıflarına gerek yoktur.
Eski Yaklaşım
Yardımcı sınıflar
Modern Yaklaşım
Interface statik metotları
JDK'dan itibaren
8
Zorluk
Başlangıç
JDK Desteği
Interface'lerde statik metotlar
Mevcut
JDK 8'den itibaren kullanılabilir (Mart 2014)
Nasıl çalışır
Java 8'den önce, bir interface ile ilgili yardımcı metotlar ayrı bir sınıfta (örn. Collection için Collections) yaşamak zorundaydı. Interface'lerdeki statik metotlar, ilgili yardımcı araçları bir arada tutmanızı sağlar. Comparator.comparing(), Stream.of() ve List.of() gibi modern API'lerde yaygındır.
İlgili Belgeler