나는 mvc에 대해 잘 알고있다. 어떤 임에도 여전히 확실하지 않은 것은 google guice를 사용하여 종속성을 주입하는 방법입니다. 다음은 내 코드의 일부입니다.구글 guice MVC 관찰자 패턴 구현
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;
}
}
의 예처럼 생성자를 주입하지만 또 다른 문제를 추가합니다. 모델에 뷰의 인스턴스를 제공하려면 어떻게해야합니까? 내 관점은 관찰자이며 컨트롤러에 주입 된 뷰의 동일한 인스턴스가 모델에 주입되어야합니다. 내가 생각해 낸 또 다른 접근법은 인젝터를 사용하여 모델, 뷰, 컨트롤러의 인스턴스를 얻고 거기에 조립하는 것입니다. 예 :
내 마지막 접근 방식은 모델보기와 컨트롤러를 싱글 톤으로 사용하여 모든 주입 된 인스턴스가 동일하다는 것입니다. 임씨는 여전히 guice에 익숙하지 않으며 의존성을 다루는 방법을 아직 이해할 수 없습니다. 나는 또한 이것을 깔끔하게하고 싶기 때문에 연구하고있다. 이런 식으로 당신의 경험과 의견을 듣고 싶습니다. 고맙습니다.
나는 그것에 대해 읽었습니다. 이제 모델 뷰 및 컨트롤러의 인스턴스를 만들 때 제대로 어셈블 할 수 있도록 충분한 리소스를 찾을 수 없습니다. 내 모델이 컨트롤러가받은 뷰의 동일한 인스턴스를 받겠습니까? 죄송합니다 guice 그냥 시작했다 – MykelXIII
그것은 싱글 톤으로 인스턴스를 선언하려는 것처럼 들리 네요. 이것은 모듈을 통해 (바인딩을 만들 때) 또는 @Singleton 주석을 사용하여 수행 할 수 있습니다. Scopes : https://code.google.com/p/google-guice/wiki/Scopes –
@Singleton 주석을 추가하지 않으면 guice가 종속성 삽입을 어떻게 처리합니까? – MykelXIII