Hi,
A few months ago I asked whether one should expose Guice in public
APIs or hide it. I was advised to use Guice under the hood (to improve
testability) and expose factory classes to end-users. Here is what
I've got so far:
/** For internal use */
class StatelessClass
{
@Inject
public StatelessClass(OtherClass other);
public Integer toInteger(String text);
}
/** For end-users */
class StatelessClassFactory
{
public static StatelessClass getInstance();
}
/** For end-users */
class StatefulClass
{
public StatefulClass(String arg1, String arg2);
public doSomething();
}
So users instantiate StatelessClass using
StatelessClassFactory.getInstance() which uses an Injector under the
hood. They use "new StatefulClass()" to get an instance of
StatefulClass. But then what happens if StatefulClass needs to
reference StatelessClass? If I use StatelessClassFactory it makes
StatefulClass harder to unit-test, but what's the alternative?
Thanks,
Gili
--~--~---------~--~----~------------~-------~--~----~
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
-~----------~----~----~----~------~----~------~--~---