On Feb 3, 1:48 pm, Leigh Klotz <[email protected]> wrote: > I realize you said that it was just mail-buffer code, but it brings up > a question for me. > > The alternating lines of bind and expose in Private Modules have > always struck me as being clunky. > > Your example below with expose(BaseDao.class).annotatedWith > (Gui.class).to(...) looks cleaner, but I don't see it working, at > least not in the last snapshot (20081123). > > I checked <http://google-guice.googlecode.com/svn/trunk/latest-javadoc/ > com/google/inject/PrivateModule.html> and don't see a hint of this > rather reasonable looking usage there either.
There's some small problems with the integrated 'bindAndExpose()' syntax... You still need a regular expose() syntax, to cover the case when you're exposing something that comes from a module that you've installed. install(new FooModule()); expose(Foo.class); Having both bindAndExpose() and expose() can get confusing, especially for concrete types with no 'to()' clause; ie: bindAndExpose(Foo.class); It's less explicit about what's being exposed. The expose() method exposes the key, but not the target. With an integrated syntax, it's not as obvious that 'Foo' is exposed, but not 'FooImpl' in this example: bind(Foo.class).to(FooImpl.class); expose(Foo.class); vs. bindAndExpose(Foo.class).to(FooImpl.class); If it proves to be a big problem, it's fairly straightforward to add a utility method that implements bindAndExpose() on top of bind() and expose(). Cheers, Jesse --~--~---------~--~----~------------~-------~--~----~ 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 -~----------~----~----~----~------~----~------~--~---
