我有这个类:
public class House {
private final Door door;
private final Window window;
private final Roof roof;
@Inject
public House(Door door, Window window, Roof roof) {
this.door = door;
this.window = window;
this.roof = roof;
}
}
其中 Door
, Window
和 Roof
是具体类。现在,如果我想为这个场景实现一个模块,我会这样做:
public class HouseModule extends AbstractModule {
@Override
protected void configure() {
bind(Door.class).to(Door.class);
bind(Window.class).to(Window.class);
bind(Roof.class).to(Roof.class);
}
}
但我想知道这是否是绑定具体类的正确方法,或者是否有更简单的方法。我觉得有一个更简单的方法。
原文由 helpermethod 发布,翻译遵循 CC BY-SA 4.0 许可协议
Guice 的 即时绑定 完全满足您的需求。鉴于您的
Door
,Window
和Roof
满足以下要求(引自 Guice 文档):一个空的 Module 实现就足够了: