On 10 avr, 17:52, Yves <[email protected]> wrote:
> Hello
>
> Reading the documentation for the module xml files, i just realize
> that the tag <replace-with .../> allows for dependency injection.
How that?!
> Suppose i need to use different class implementation depending on my
> environment (real class for production, mock for development ...). I
> just have to have two (or more) module xml like this
>
> For production use file FooProd.gwt.xml
>
> <module>
> <replace-with class="foo.FooProdImpl">
> <when-type-is class="foo.Foo" />
> </replace-with>
> ...
>
> For development use file FooDev.gwt.xml
>
> <module>
> <replace-with class="foo.FooMockImpl">
> <when-type-is class="foo.Foo" />
> </replace-with>
> ...
>
> Am i wrong?
Yes, that's not dependency injection, it's just deferred binding.
This is not *injecting* anything, you still have to instantiate your
class explicitly with a GWT.create(...) call somewhere in your code
(you don't say at that point which specific implementation will be
used, but that has nothing to do with dependencies nor injection). If
one of your classes gains a dependency on another interface, you'll
have to inject that new dependency at each and every instantiation
point.
In summary: deferred binding has nothing to do with dependency
injection. Deferred binding is very handy, but it's just something
else (and a DI framework for GWT *must* IMO support deferred bindings,
but all of them, from Suco to GIN, support it AFAICT).
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups
"Google Web Toolkit" 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-Web-Toolkit?hl=en
-~----------~----~----~----~------~----~------~--~---