Uma dúvida: o programador pode optar por não utilizar uma interface específica para um repositório? O não uso seria prejudicial para o sistema como um todo?
Uma dúvida: o programador pode optar por não utilizar uma interface específica para um repositório? O não uso seria prejudicial para o sistema como um todo?
Oii, tudo bem?
A utilização de interfaces para repositórios não é obrigatória, mas é uma boa prática de programação. Isso porque a interface age como um contrato que garante que certos métodos estarão presentes em qualquer classe que implemente essa interface.
No seu caso, a interface StudentRepository
garante que qualquer classe que a implemente terá os métodos allStudents()
, studentsBirthAt()
, save()
e remove()
. Isso é muito útil porque permite que você possa trocar a implementação do repositório sem alterar o restante do seu código.
Por exemplo, se hoje você está usando um banco de dados relacional e amanhã decide mudar para um banco de dados NoSQL, você só precisará criar uma nova classe que implemente a interface StudentRepository
e que saiba interagir com esse novo banco de dados. O restante do seu código não precisará ser alterado, porque ele vai continuar chamando os mesmos métodos definidos na interface StudentRepository
.
Agora, se você optar por não utilizar uma interface para o repositório, você não terá esse "contrato" garantindo a presença dos métodos. Isso pode tornar seu código mais difícil de manter e evoluir, porque qualquer mudança no repositório pode exigir mudanças em vários lugares do seu código. Além disso, pode ser mais difícil garantir que todas as classes de repositório estão seguindo as mesmas regras.
Espero ter ajudado e bons estudos!