Language Intermedio

Estrai la logica condivisa nelle interfacce usando metodi privati.

✕ 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));
    }
}
Vedi un problema con questo codice? Faccelo sapere.
🧩

Riutilizzo del codice

Condividi la logica tra i metodi default senza duplicazione.

🔐

Incapsulamento

I dettagli di implementazione rimangono nascosti alle classi implementanti.

🧹

Interfacce DRY

Niente più copia-incolla tra i metodi default.

Approccio Vecchio
Logica duplicata
Approccio Moderno
Metodi privati
Dal JDK
9
Difficoltà
Intermedio
Metodi privati nelle interfacce
Disponibile

Ampiamente disponibile dal JDK 9 (settembre 2017)

Java 9 consente i metodi privati nelle interfacce, permettendo di condividere codice tra i metodi default senza esporre i dettagli di implementazione alle classi implementanti.

Condividi 𝕏 🦋 in