Melhor forma de criar DAOs

Fala javeiros,
gostaria de saber qual é a melhor forma de criar DAOs:

1- criando uma interface (UsuarioDAO) para cada classe de negocio(Usuario) e implementar esta interface(UsuarioDAOImpl)

2- criar uma classe Abstrata DAO e todas os futuros DAOs extendem ele.

aceito sugestões !!!, qualquer opnião será bem vinda.

Conheço duas formas de se fazer DAOs. Por Abstract Factory, ou Factory Method. O uso de interfaces para cada DAO que tu for criar é interessante quando tu tens outras fontes de persistencia, diferentes SGBDs, arquivos, etc. Sugiro uma leitura do Core J2EE Patterns - Data Access Object, onde são abordadas as duas formas de implementação. É um ótimo material, e vai ajudar a te exclarecer muito. :joia: