Thank you so much for your feedback on this.
I am going to experiment more, using your guidelines.

as for the need for additional layer,
a valid use case could be this:

lets say you are going to deploy your app on GAE.
for the persistence, there are several options:

- JDO/JPA
- DataStore LowLevel APIs
- Objectify, Twig Persist

many of these technologies are new and subject to (rapid) change,
it is a good idea to use interfaces to declare our
DataAccess "contract" without exposing infrastructure related detail
that is specific
to each of those technologies.


if one has 20 domain objects(entities),
and for each entity,
certain requests/methods : findX, findXInRange, findByX,

it can get out of hand quickly.


it would be very difficult to swap one persistence technology for
another,
sometime down the road.

the idea is,
- loose coupling
- easily swapping infrastructure specific code, without affecting
other part of system
(easy refactoring, testing,)
- clearly defined contracts in the form of interfaces,
when you look at an interface you can see what is expected of this
DAO,
rather than going through hundreds of lines of codes, some of which
scattered with try/catch/finally blocks
(i am exaggerating a bit, IDEs can provide a quick overview)

having said that,
if one is working on a project that
uses a legacy database, a database that's been in that environment for
years,
where DBAs have developed custom scripts, and its been used in day to
day operation of that business/organization for many years,
and there are policies within that business/organization to continue
using that database in the future,
I agree, using abstractions might be an overkill.


As with most things, I believe it all depends on the requirements/
constraints.



-- 
You received this message because you are subscribed to the Google Groups 
"Google Web Toolkit" group.
To post to this group, send email to google-web-tool...@googlegroups.com.
To unsubscribe from this group, send email to 
google-web-toolkit+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/google-web-toolkit?hl=en.

Reply via email to