、、、およびインターフェイスを実装する3 つのクラスCircleBuilder
があります。SquareBuilder
TriangleBuilder
ShapeBuilder
google-guice を使用して、各クラスの 1 つのインスタンスでmyFormBuilder
と特に a BuilderList
( extending ) を初期化する必要があります。List<ShapeBuilder>
最善の方法は何ですか?
私はプロバイダーメソッドと次のようなものについて知っています:
@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;
}
FormBuilder
しかし、それは、guice を使用する目的を無効にする手動で作成する必要があることを意味します(これFormBuilder
は、オブジェクト グラフの最上位の要素であるためです)。
次のように書けるようになりたいです。
bind(BuilderList.class).to(CircleBuilder.class);
bind(BuilderList.class).to(TriangleBuilder.class);
bind(BuilderList.class).to(SquareBuilder.class);
何か案が?