Aplicado o padrão DAO e Factory