Estoy creando un objeto de acceso a datos para recuperar información de Google App Engine para una aplicación web basada en el marco Spring (la primera vez para todos).Mejores prácticas de DAO (objetos de acceso a datos): ejemplos que veo utilizan un DAO y un objeto de servicios, ¿cuál es la mejor práctica aquí?
Veo una serie de ejemplos que usan un controlador/aplicación web -> Servicio -> DAO -> JDO/Google-App-Engine.
En este patrón, la capa DAO es la única que conoce acerca de JDO, por lo que esta capa es la única que necesita reemplazo si el almacén de datos cambió. La capa Servicios llama a la capa DAO y formatea/manipula los datos necesarios.
Mi pregunta es ¿por qué la capa de servicio adicional? Al menos inicialmente, no parece que la capa de Servicio esté agregando mucho a la ecuación. Naturalmente, pienso simplemente escribir una capa DAO para encapsular las solicitudes JDO y manipular y devolver los datos.
¿Alguien me puede mostrar lo racional de una capa de servicios por separado, será obvio ya que el proyecto se vuelve más grande y complejo?