In GWT MVP my presenters typically have a lot of private members (event bus, rpc, message bundles created with GWT.create()...). We have been using a "ClientFactory" to generate views as singleton, so they won't be recreated each time we need them. That factory can also provides rpc, event bus, and other resources.
I can read in GWT doc that the main purpose of this factory is to gain access to object needed through your application. The second advantage of using a ClientFactory is that you can use it with GWT deferred binding to use different implementation classes based on user.agent or other properties.
My question is: if I don't and never will need different implementation of that factory with deferred binding, can't I just use a static classes & methods to retrieve my dependencies instead of a client factory or Gin ? I can't really grab the advantage of Gin over this solution, nor whether it could get me into trouble at some point / under some (not obvious) circumstances. I would usually avoid static classes in server-side code as it is multi-threaded but in client-side mono-threaded code I don't see where a problem could happen. Yet it seems most people use Gin or some other solution...