Ich habe die folgende Schnittstelle:Wie installiert man automatisch alle Implementierungen einer Schnittstelle mit guice?
public interface IFilterFactory<T extends IFilter> {
T create(IFilterConfig config);
}
Und mehrere Implementierungen davon:
public class AndFilter implements IFilter {
public interface IAndFilterFactory extends IFilterFactory<AndFilter> {}
// ...
}
public class OrFilter implements IFilter {
public interface IOrFilterFactory extends IFilterFactory<OrFilter> {}
// ...
}
in meinem Guice Modul, bin ich zur Zeit jedes Modul zu installieren füge ich auf diese Weise:
install(new FactoryModuleBuilder().build(IAndFilterFactory.class));
install(new FactoryModuleBuilder().build(IOrFilterFactory.class));
Die And
und Or
Filter sind nur Beispiele, aber ich habe viele mehr, einige davon erfordern bestimmte Objekte zu sein injiziert, also die Fabriken.
Gibt es einen Weg mit Guice, einfach zu sagen "Installiere alle Implementierungen von IFilterFactory
", ohne selbst Reflektionen verwenden zu müssen?