Te agregué al msn, prometo que no es para intentar ligar contigo, solo para explicarte mejor las cosas x alli, jajaja.
A ver... como tú dices también estaría bien, sin hacer esa clase intermedia entre interfaz y acceso a datos, ya que tu aplicación parece sencilla y quizás no merezca la pena crear más clases que van a terminar siendo un poco redundantes.
De todas formas, te explico un poco el por qué de hacerlo tal y como yo te digo:
Una de las ventajas es que, en la clase intermedia (llamémosla Cliente) puedes tener un método que sea "loadCliente(id)" al que le pasas un identificador correspondiente con ese cliente. Dicho método, hace uso de su correspondiente clase de acceso a datos (ClienteDAO) la cual ejecuta la consulta correspondiente, y devuelve un objeto Cliente cargado al completo, con todos sus datos. Esto tiene como ventaja que ya tienes todos los datos de ese cliente en memoria, para usarlos cuando kieras. Si preguntas 3 veces el nombre del cliente, lo obtienes de la memoria, sin embargo, si lo hicieses mediante una consulta de la clase ClienteDAO, para cada vez que preguntas el nombre, haces una consulta a la base de datos. En este caso de ejemplo la consulta sería rápida, pero ponte en que fuesen consultas que tuviesen varios joins, etc. Sería una desventaje notable.
Por otro lado, tiene otra ventaja considerable y que es la mayor razón para hacer las cosas así. Y es que todas las bases de datos no se manejan igual, con lo cual, para una base de datos o para otra, los métodos de las clases DAO pueden ser distintos. Imagina que trabajas con hibernate... los métodos DAO no tendrán nada que ver con los que uses si accedes a una simple base de datos mediante ODBC, o si usas Oracle con JDBC.
¿A dónde nos lleva esto? A que tú, en tu clase Clientes, tendrias los métodos getEdad, getNombre, getDireccion... etc, que por ejemplo parten de un método llamado getCliente en la clase DAO. Al tener las clases separadas en distintas capas, si necesitas cambiar de base de datos, o de tecnología de persistencia de datos, solamente tienes que implementar tus métodos DAO, a tu método Clientes.getNombre(id) le dará igual que base de datos o qué tecnología uses, ya que el se limitará a llamar a un método ClientesDAO.getNombre(id), que será el que realmente tenga implementada la consulta, se encargue de crear la correspondiente conexión... etc.
Así, puedes crear distintas librerías y solamente cambiando la librería DAO, trabajar con una base de datos u otra, hibernate, hibatis... lo que necesites, implementando los métodos DAO correspondiente.
Hay multitud de matices que te convencerán más o menos, ya te contaré mas detalles si kieres en otro momento, pero por ahora ya te he dado bastante la tabarra :P
Por cierto... toda esta explicación no es para convencerte de que lo hagas así, sino para que sepas como se suelen plantear las cosas a la hora de crear una aplicación en el mundo profesional y sus razones. Por lo que tú me explicas... puede irte de lujo con el planteamiento que tu tienes ;·)