杜松子酒。辅助工厂+ GWT.create()

时间:2015-03-13 14:56:58

标签: guice gin

据我所知,当没有指定绑定时,GIN会自动使用GWT.create()回退。当在构造函数中注入依赖项时,它非常有用。

@Inject
public PresenterImpl(ResourceManager manager) {...}

是否可以使用辅助工厂初始化同一个对象? 我试过了,但GIN找不到合适的"实施"。 换句话说,我想定义一个工厂模块构建器,其接口返回ResourceManager并使用factory初始化该对象。

1 个答案:

答案 0 :(得分:0)

我想我并不完全明白你想做什么:

如果你提到的话,对于ResourceManager的其他未指定的绑定,将使用GWT.create。但是,您希望在返回之前使用工厂自定义 ResourceManager实例(例如:使用原始GWT.create&#39}资源管理器,调用某些方法,并将其退回使用)。

这是我在你的杜松子酒模块中建议的,而不是工厂:

@Provides
@MyCustomizedResourceManager
ResourceManager provideCustomResourceManager(ResourceManager basicResourceManager, Foo foo, Bar bar) {
  basicResourceManager.setFoo(foo);
  basicResourceManager.setBar(bar);
  return basicResourceManager;
}

关键区别在于自定义绑定:您的提供程序方法依赖于对ResourceManager的常规GWT.create调用(也许也适用于Foo和Bar),但客户端(@Inject MyClass(@MyCustomizedResourceManager ResourceManager manager)依赖于绑定你明确设置。