Language Intermedio

Extrae lógica compartida en interfaces usando métodos privados.

✕ 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));
    }
}
¿Ves un problema con este código? Cuéntanos.
🧩

Reutilización de código

Comparte lógica entre métodos default sin duplicación.

🔐

Encapsulamiento

Los detalles de implementación permanecen ocultos a las clases implementadoras.

🧹

Interfaces DRY

No más copiar y pegar entre métodos default.

Enfoque Antiguo
Lógica duplicada
Enfoque Moderno
Métodos privados
Desde JDK
9
Dificultad
Intermedio
Métodos privados en interfaces
Disponible

Ampliamente disponible desde JDK 9 (sept. 2017)

Java 9 permite métodos privados en interfaces, lo que permite compartir código entre métodos default sin exponer detalles de implementación a las clases que las implementan.

Compartir 𝕏 🦋 in