2008/9/13 Pyrolistical <[EMAIL PROTECTED]>

>
> Yes, I understand long chains will be hard with DI by hand, but I
> don't understand how Guice makes it easier in long chains.
>
> Say you have a long chain that goes from A -> B -> ... -> F -> G
>
> But H is created not when G is created, but much later in the
> runtime.  So do you have to pass the Injector all the way to G for it
> to create H later?
>

not really - you could just inject some sort of factory into G that
lets you create H later on (or even inject the injector if you want)

so no need to pass the injector down the chain because the DI
system will manage that for you - and if you decide to change
how H is created you just need to change the injection point in
G, no need to update the chain...


> On Sep 11, 5:46 pm, famousactress <[EMAIL PROTECTED]> wrote:
> > It would also seem that the deeper your callstack, the bigger the
> > payoff... A->B->C might not seem like such a big deal to hand-wire...
> >
> > Where I see the payoff is in the bootstrapping and ability for classes
> > deeper in the stack to @Inject dependencies that shouldn't be cared
> > about above them... Imagine A-F instead of A-C. What happens when F
> > needs a some sort of JMSClient depenency?
> >
> > DI by hand means either E has to make a static call to a ClientFactory
> > (making E less testable for F's sake).. or, you bubble up the
> > JMSClient interface and pass it all the way down from A..
> >
> > I'd concede that DI by hand gives you much of the testability.. I
> > think what Guice seems to add is the ability to decouple groups of
> > classes by limiting the knowledge of dependent interfaces to the
> > classes that care about them.
> >
> > Then again, I'm just starting to implement it.. so what do I know :)
> >
> > Phill
> >
> > On Sep 11, 5:28 pm, Pyrolistical <[EMAIL PROTECTED]> wrote:
> >
> > > I have watched that, and I don't see why DI by hand is any worst than
> > > Guice.  Its solves all your main problems with testability.
> >
> > > The ClientFactory in your DI by hand example is very similar to a
> > > Provider in a Module for the Injector.
> >
> > > So how is Guice any better than DI by hand?
> >
> > > On Sep 11, 5:17 pm, "Bob Lee" <[EMAIL PROTECTED]> wrote:
> >
> > > > On Thu, Sep 11, 2008 at 5:10 PM, Pyrolistical <[EMAIL PROTECTED]>
> wrote:
> >
> > > > > This is my point.  If using new breaks Guice, then what's the point
> of
> > > > > Guice.
> >
> > > > > If I need to pass an Injector around to create classes, why don't I
> > > > > just pass in the dependencies when I use the new constructor?  I
> can
> > > > > just replace the Injector with a class that holds references to my
> > > > > dependencies.  I would create this class at main just like
> configuring
> > > > > a module.
> >
> > > > > If I did that, what's the point of Guice?
> >
> > > >http://crazybob.org/2007/06/introduction-to-guice-video-redux.html
> >
> > > > Bob
> >
>


-- 
Cheers, Stuart

--~--~---------~--~----~------------~-------~--~----~
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
-~----------~----~----~----~------~----~------~--~---

Reply via email to