Looks a lot like command pattern. You should really think about if you really need that pattern. It often sounds nice but it always results in lots of classes. Just to illustrate:
interface LoginService extends RemoteService { UserInformationDto login(String user, pass) throws InvalidCredentialsException; boolean isLoggedIn(String token); } Applying the command pattern to the above straight forward service will result in 2 commands, 2 responses, 2 handlers and 1 dispatch service that takes any command, performs some common tasks and finally dispatches the command to its responsible handler (in your case you sub class'ed your abstract service which would be equivalent to having handlers, although in your case you need to create the client service interfaces as well). So basically each remote method call will become 3 classes (input, output, handler). With a bit of thought and a bit of reflection you can reduce the amount of classes a bit but its like a water drop on a hot stone. I have one project that uses the command pattern and I tell you I don't want to count the amount of classes related to this pattern. But the pattern also provides a lot of compelling benefits and depending on the requirements it can be a good fit. If you want to go the command pattern route then take a look at gwt-dispatch or at least read https://code.google.com/p/gwt-dispatch/wiki/GettingStarted to get the idea on how to reduce the amount of classes used in your current solution. -- J. -- You received this message because you are subscribed to the Google Groups "Google Web Toolkit" group. To unsubscribe from this group and stop receiving emails from it, send an email to google-web-toolkit+unsubscr...@googlegroups.com. To post to this group, send email to google-web-toolkit@googlegroups.com. Visit this group at http://groups.google.com/group/google-web-toolkit. For more options, visit https://groups.google.com/groups/opt_out.