Service-Provider mit Fabrik-Methode
How To ...
Dynamisches Laden und Verwenden von Services ähnlich dem Factory Method Pattern
Hintergründe
Seit Version 6 enthält Java-SE die Klasse ServiceLoader, die die Verwaltung von Services vereinfacht. Die grundlegende Verwendung ist auf der Seite Grundlagen erläutert.
So geht's
Implementierung einer Methode, die eine Service-Instanz zurückgibt.
public class SomeServiceProvider {
public static SomeService getDetfault() {
ServiceLoader<SomeService> loader = ServiceLoader.load(SomeService.class);
for (SomeService provider : loader) {
// hier nur einer, sonst Auswahl über System-Property, Annotation o.ä.
return provider;
}
throw new InstantiationError("Kein Provider registriert");
}
}
