据我所知,当没有指定绑定时,GIN会自动使用GWT.create()回退。当在构造函数中注入依赖项时,它非常有用。
@Inject
public PresenterImpl(ResourceManager manager) {...}
是否可以使用辅助工厂初始化同一个对象?
我试过了,但GIN找不到合适的"实施"。
换句话说,我想定义一个工厂模块构建器,其接口返回ResourceManager
并使用factory初始化该对象。
答案 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
)依赖于绑定你明确设置。