I forgot to add this link for further info: http://code.google.com/p/google-guice/wiki/Multibindings
On Sep 2, 4:44 pm, cpea <[email protected]> wrote: > That's great, thank-you! I'm going to try that... it would greatly > simplify the amount of code. > > On Sep 2, 1:58 am, Dan Godfrey <[email protected]> wrote: > > > If there's a one-to-one mapping between the Types and calculators and > > the calculators can be singletons, you could have used a MapBinder. > > However you still need the CalculatorFactory or a CalculatorRegistry > > (as it's not actually creating anything anymore), it's a bit smaller > > and a lot less boilerplate to maintain. > > > public class CalculatorModule extends AbstractModule { > > protected void configure() { > > MapBinder<Types, ICalculator> mapbinder > > = MapBinder.newMapBinder(binder(), Types.class, > > ICalculator.class); > > mapbinder.addBinding(Types.A).to(ACalculator.class); > > mapbinder.addBinding(Types.B).to(BCalculator.class); > > mapbinder.addBinding(Types.C).to(CCalculator.class); > > } > > } > > > @Singleton > > public class CalculatorFactory { > > private final Map<Types, Calculator> calculators; > > > �...@inject > > public CalculatorFactory(Map<Types, Calculator> calculators) { > > this.calculators = calculators; > > } > > > public ICalculator create(UserGroup group) { > > calculators.get(group.getType); > > } > > > } --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "google-guice" group. To post to this group, send email to [email protected] To unsubscribe from this group, send email to [email protected] For more options, visit this group at http://groups.google.com/group/google-guice?hl=en -~----------~----~----~----~------~----~------~--~---
