Mam trzy klasy CircleBuilder
, SquareBuilder
i TriangleBuilder
implementujące interfejs ShapeBuilder
.Jaki jest najlepszy sposób wstrzyknięcia listy w google-guice?
Muszę zainicjować mój FormBuilder
, a zwłaszcza BuilderList
(rozszerzając List<ShapeBuilder>
) o jedno wystąpienie każdej klasy za pomocą google-guice.
Jaki jest najlepszy sposób?
wiem na temat metod dostawcy i rzeczy tak:
@Provides
FormBuilder provideFormBuilder() {
DatabaseTransactionLog instance = new FormBuilder (<numerous parameters>);
ShapeBuilder builder = null ;
builder = new CircleBuilder(<numerous parameters>) ;
instance.addBuilder(builder) ;
builder = new SquareBuilder(<numerous parameters>) ;
instance.addBuilder(builder) ;
// And so on
return instance;
}
ale oznaczałoby to, że trzeba utworzyć mój FormBuilder
ręcznie, co pokonał cel przy użyciu Guice (bo FormBuilder
jest górny element w moim obiektowy wykres).
Chciałbym móc napisać coś takiego:
bind(BuilderList.class).to(CircleBuilder.class);
bind(BuilderList.class).to(TriangleBuilder.class);
bind(BuilderList.class).to(SquareBuilder.class);
jakiś pomysł?
Uwaga: MultiBinding wymaga innego jar -> Guice-multibindings-3.0.jar –