Fala Metre,
Tenho uma dúvida quanto a implementação de repositórios. É correto eu criar interfaces genéricas para repositórios? Me parece não ser correto mas já vi pessoas fazendo. Existe alguma recomendação?
Fala Metre,
Tenho uma dúvida quanto a implementação de repositórios. É correto eu criar interfaces genéricas para repositórios? Me parece não ser correto mas já vi pessoas fazendo. Existe alguma recomendação?
Fala, Diego. Eu não vejo necessidade nenhuma, pra ser sincero.
Se PHP tivesse Generics e todos os meus repositórios tivessem alguma operação em comum, talvez eu até criasse uma interface genérica, mas não vejo muito propósito não...
Então mestre,
Essa foi uma discussão que tive com outra pessoa onde ela criou uma interface genérica para os repositórios por conta das operações básicas (save, remove, findById, findAll), além da interface genérica ela criou também a implementação de um repositório abstrato para implementar essa interface (tudo feito com o doctrine). Eu discordei bastante desse modelo por que apesar que do ponto de vista de reaproveitar algumas partes de código seja interessante eu perderia com "legibilidade" e especifidade desses contratos, por exemplo, no método save eu posso receber qualquer coisa e não especificar que será um customer ou um user que será salvo, eu já li em alguma fonte que repositórios tem que ser bem específicos. Talvez seja aqueles casos que fica a gosto do cliente e não tem certo ou errado. Até cheguei a te fazer uma pergunta semelhante um tempo atrás aqui e me deparei com essa questão novamente de maneira mais específica =D
Eu concordo com você, Diego. Eu prezo pela legibilidade e robustez do código. Por isso disse que se o PHP tivesse Generics, talvez uma interface mais geral seria factível, mas como não tem, eu não usaria em nenhum caso. :-D