Language Orta

Özel interface metotları

Özel metotlar kullanarak interface'lerdeki paylaşılan mantığı çıkarın.

✕ Java 8
interface Logger {
    default void logInfo(String msg) {
        System.out.println(
            "[INFO] " + timestamp() + msg);
    }
    default void logWarn(String msg) {
        System.out.println(
            "[WARN] " + timestamp() + msg);
    }
}
✓ Java 9+
interface Logger {
    private String format(String lvl, String msg) {
        return "[" + lvl + "] " + timestamp() + msg;
    }
    default void logInfo(String msg) {
        IO.println(format("INFO", msg));
    }
    default void logWarn(String msg) {
        IO.println(format("WARN", msg));
    }
}
Bu kodda bir sorun mu gördünüz? Bize bildirin.
🧩

Kod yeniden kullanımı

Tekrar etmeden varsayılan metotlar arasında mantığı paylaşın.

🔐

Kapsülleme

Uygulama ayrıntıları uygulayan sınıflardan gizli kalır.

🧹

DRY interface'ler

Varsayılan metotlar arasında artık kopyala-yapıştır yok.

Eski Yaklaşım
Çoğaltılmış Mantık
Modern Yaklaşım
Özel Metotlar
JDK'dan itibaren
9
Zorluk
Orta
Özel interface metotları
Mevcut

JDK 9'dan itibaren geniş çapta kullanılabilir (Eylül 2017)

Java 9, interface'lerde özel metotlara izin vererek uygulama ayrıntılarını uygulayan sınıflara göstermeden varsayılan metotlar arasında kod paylaşmanıza olanak tanır.

Paylaş 𝕏 🦋 in