Eu tenho uma dúvida.
Pesquisando em várias fontes diferentes, encontrei que a classe DAO pertence a MODEL.
Mas a qual pilar da Programação Orientada a Objetos ela pertence? ( Polimorfismo, Herança, Abstração, ou Encapsulamento)
(procurei em vários lugares e não encontro a resposta para está minha dúvida)
Eu diria que o DAO pertence tanto ao pilar da abstração quanto ao do encapsulamento.
Abstração pois ele abstrai os detalhes de acesso à base de dados.
Encapsulamento pois ele encapsula os dados que são persistidos na base.
E em específico, a GenericDAO ? Nessa classe também pode ser considerado ambos os pilares?
Primeiramente DAO e Generic DAO não são uma classe, são um padrão de projeto.
E sim, um Generic DAO também faz parte dos pilares, afinal, um Generic DAO é um DAO, porém que abstrai mais coisa ainda.