"Programe para uma interface, não para uma implementação".Implementação
de códigos genéricos para persistência de dados, para isso foi criada a
interface GenericDAO<T> e uma classe GenericDAOImpl<T> que implementa
GenericDAO<T>, todas as classes de persistência agora devem extender
GenericDAOImpl<T> e tambem possuir uma interface e essa interface deve
extender GenericDAO<T>. Tudo isso para gerar baixo acoplamento entre as
classes e com isto tornar o código mais fléxivel as mudanças.