venerdì 4 marzo 2011

Primo sguardo a Guice

Da una recente discussione sul blog di Debasish Ghosh, mi è nata la curiosità di guardare questo container di cui avevo sentito parlare. Una caratteristica che mi ha colpito è il modo di definire come istanziare gli oggetti annotando un metodo, ad esempio in questo modo:
public class OrderProcessingModule extends AbstractModule {
   
  ...

  @Provides
  IOrderRepository createRepo() {
     RemoteOrderRepositoryAdapter repo = new 
       RemoteOrderRepositoryAdapter(ThirdPartyObject.getFoo());
     repo.setStuff(ThirdPartyObject.instance.createStuff());
     // ... altro codice per inizializzare repo
     //
     return repo;
  }
}
che, da quanto ho capito (ma ho fatto solo un analisi sommaria) è anche l'unico metodo per iniettare componenti di terze parti.

Nessun commento: