【发布时间】:2014-02-23 18:39:12
【问题描述】:
我对mvc有很好的了解。我仍然不确定的是如何正确使用 google guice 来注入依赖项。这是我的代码的一部分:
protected void configure() {
bind(IAppController.class).to(AppController.class);
bind(IAppView.class).to(AppView.class);
bind(IAppModel.class).to(AppModel.class);
}
现在,我不确定如何正确注入依赖项。我想请教您对处理此问题的最佳方法的意见。我将它们注入这样的构造函数中
public class AppController implements IAppController {
private IAppView appView;
private IAppModel appModel;
@Inject
public AppController(IAppView appView, IAppModel appModel){
this.appModel = appModel;
this.appView = appView;
}
}
现在上面的例子有效,但增加了另一个问题。我怎样才能给模型一个视图的实例?我的视图是观察者,我需要将控制器中注入视图的相同实例注入模型中。我想出的另一种方法是简单地使用注入器来获取模型、视图、控制器的实例并在那里组装它们?如:
public static void main(String[] args){
Injector injector = Guice.createInjector(new AppBootstrapLoader());
IAppController controller = injector.getInstance(IAppController.class);
IAppView view =...
IAppModel model =....
controller.setModel(model);
controller.setView(view);
model.addObserver(view);
}
我的最后一种方法是将模型视图和控制器作为单例,这样我可以确保所有注入的实例都是相同的。我对 guice 还是新手,我仍然无法理解它如何处理依赖关系。我也想干净地做到这一点,因此我正在研究。我想听听您对这种方式的经验和意见。谢谢你。
【问题讨论】:
标签: java model-view-controller guice observer-pattern