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.


Reply via email to