1
나는 나눠 줄 라이브러리에 대해 파사드를 만들려고합니다. 제 외관에서 저는 Guice를 사용하여 객체 그래프를 만듭니다. 객체 그래프의 Deep은 getURL/setURL 메소드를 가진 Proxy 객체입니다. 제 생각에는 루트 객체를 만드는 데 사용 된 Proxy 인스턴스를 얻는 방법은 무엇입니까? 내 외관에 URL getter 및 setter가 있어야합니다. Guice 객체 그래프에서 객체 가져 오기
나는이 같은 시도 :public class SomeThingFacade() {
private final SomeThing thing;
private final HTTPProxy proxy;
public SomeThingFacade() {
MyModule module = new MyModule();
Injector injector = Guice.createInjector(module);
// this is the main class I'm making a facade for
this.thing = injector.getInstance(SomeThing.class);
// deep in the "thing" object graph is a Proxy implementation
this.proxy = injector.getInstance(HTTPProxy.class);
}
public void setURL(URL url) {
this.proxy.setURL(url);
}
}
을하지만 injector.getInstance는 새로운 인스턴스를 생성.
인 MyModule에 바인딩 :
bind(Proxy.class).to(HTTPProxy.class).asEagerSingleton();
내가 이전 외관 생성자에서 개체 그래프를 하드 코딩했다하지만 30 개체 unwieldly 얻었다.
기본적으로 객체 그래프를 생성 한 후에 객체 그래프를 깊게 구성해야하지만 어떻게 그 인스턴스를 유지할 수 있는지 잘 모르겠습니다.
기본적으로 개체 그래프를 생성 한 후에 인스턴스를 깊게 구성해야하지만 어떻게 그 인스턴스를 유지할 수 있는지 잘 모르겠습니다. – kalithlev
내가 싱글 톤이 아니면 않는 한, 당신이 정말로 그것을 잡을 수 없다는 암시를했다고 생각합니다. 인젝션을 사용하기 전에 객체를 인젝션하기 전에 설정해야합니다. 이 경우 모듈에서 http://code.google.com/p/google-guice/wiki/ProvidesMethods 개체 또는 http://code.google.com/p/google-providesMethods 개체에 대한 제공 방법을 정의해야합니다. guice/위키/ProviderBindings. 인스턴스 별 특수 효과 http://code.google.com/p/google-guice/wiki/BindingAnnotations가있을 수 있습니다. 그래서 당신의 facade가 proxy를위한 새로운 설정을 필요로한다면, 그것을하는 facade를위한 특정 모듈을 정의하십시오. – dlamblin