Como evitar injector.createInstance () em todo o lugar ao usar o guice?
Há algo que eu simplesmente não entendo sobre o truque: de acordo com o que li até agora, devo usar o Injector apenas na minha classe de inicialização (em um aplicativo independente, isso normalmente seria no método main ()) , como no exemplo abaixo (extraído da documentação do guice):
public static void main(String[] args) {
/*
* Guice.createInjector() takes your Modules, and returns a new Injector
* instance. Most applications will call this method exactly once, in their
* main() method.
*/
Injector injector = Guice.createInjector(new BillingModule());
/*
* Now that we've got the injector, we can build objects.
*/
RealBillingService billingService = injector.getInstance(RealBillingService.class);
...
}
Mas e se não for possível criar todos os objetos que eu precisar durante a inicialização? Talvez eu queira responder a alguma interação do usuário quando o aplicativo estiver sendo executado? Não preciso manter meu injetor em algum lugar (por exemplo, como uma variável estática) e depois chamar injector.getInstance (SomeInterface.class) quando precisar criar um novo objeto?
É claro que espalhar chamadas para Injector.getInstance () em todo o lugar parece não ser desejável.
O que estou errado aqui?