On 14 Sep 2012, at 15:16, Christian Gruber wrote: > I feel like I need a bit more clarity of what you're trying to do before > commenting properly. There are a few ways to think about what you describe > here, but without a concrete example in code, it's hard to reason about what > might be the best solution. Can you create a simplified example in code and > paste it here, so we can better help?
IMHO the real control should be in the module (ie. what gets bound to which key) and not in the concrete class - that should just declare what it needs (ie. its injected dependencies). If you have duplicate graphs of objects which only differ in price strategy then that sounds like the "robot-legs" problem: http://code.google.com/p/google-guice/wiki/FrequentlyAskedQuestions#How_do_I_build_two_similar_but_slightly_different_trees_of_objec > On Friday, September 14, 2012 at 10:00 AM, dhoffer wrote: > >> I've got a couple of projects that use Guice that used to use manual DI. So >> currently I have one module class with all the bindings. I often use the >> annotatedWith(Names.named("MyClass")) approach so I can specify which >> implementation should be injected. >> >> But this brings me to the problem. What if I have the case where several >> injections much change as a set? E.g. lets say I'm implementing a couple of >> pricing strategies where each strategy creates 5 concrete classes...it's >> critical that all 5 of those are from the same pricing strategy...not 4 from >> one and 1 from another. In the old days, pre-Guice, I could just go to my >> 'application construction method' find the 5 relevant classes put them right >> next to each other in code...add comments/etc. E.g. everything was all in >> one place so it was manageable to find what types are being created and >> switch things out. >> >> Now post-Guice I have no centralized control of anything...as the module >> file doesn't say what is created it just says if 'you' find X use Y. The >> real control is in each java class file's @Inject constructor where I add >> the @Named("MyClass") annotation. >> >> How can I achieve a more centralized control over the exact classes >> instantiated? >> >> >> >> -- >> You received this message because you are subscribed to the Google Groups >> "google-guice" group. >> To view this discussion on the web visit >> https://groups.google.com/d/msg/google-guice/-/PHofIXp_71AJ. >> 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. > > > -- > 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. -- 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.
