我有三个类CircleBuilder
,SquareBuilder
和TriangleBuilder
实现ShapeBuilder
接口。
我需要使用 google-guice 用每个类的一个实例初始化我的FormBuilder
,特别是一个BuilderList
(扩展)。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);
任何的想法?