3
Google Guice를 IOC 컨테이너로 사용하는 Java Swing 응용 프로그램을 만들고 있습니다. 구성 요소를 직접 주입하고 있지만 Guice가 외부에있는 구성 요소 을 작성하게합니다.Guice를 사용하여 스윙 구성 요소를 주입하는 모범 사례?
이 응용 프로그램은 다음과 같이 다소 같습니다
private Panel1 panel1;
private Panel2 panel2;
@Inject
public class Application(Panel1 panel1, Panel2 panel2) {
this.panel1 = panel1;
this.panel2 = panel2;
}
이 질문 here 및 here 보면, 나는 구성 요소를 로더를 주입하는 대신 직접의 결론이되었다. private PanelLoader1 loader1;
private PanelLoader2 loader2;
private Panel1 panel1;
private Panel2 panel2;
@Inject
public class Application(PanelLoader1 loader1, PanelLoader2 loader2) {
this.loader1 = loader1;
this.loader2 = loader2;
loader1.load();
loader2.load();
this.panel1 = loader1.get();
this.panel2 = loader2.get();
}
public class PanelLoader {
private Panel panel;
public void load() {
SwingUtilities.invokeLater(new Runnable() {
@Override
public void run() {
panel = new Panel();
}
});
}
public Panel get() {
return panel;
}
}
이 정보가 맞습니까? 이를 수행하기위한 모범 사례가 있습니까?