Il design di SLF4J mi ha davvero entusiasmato. Intendo il modo in cui introduce la componente di implementazione. In LoggerFactory , importa org.slf4j.impl.StaticLoggerBinder , una classe nel suo spazio dei nomi ma che non esiste nel suo file jar. L'implementazione (come il logback) jar include solo la classe ed è fatta. Il classloader farà il lavoro vincolante per te.
Questo rende il componente di implementazione plug-in / drop-in-able, zero configuration, il tuo codice dipende solo da SLF4J.
Voglio sapere, questo approccio ha un nome ortodosso? O qualche modello di design correlato? Voglio saperne di più.