Inquiridor
Bloquear a implementação de métodos em classes com herança de Interface,isso existe?

Discussão Geral
-
Estava aqui procurando soluções a respeito de não duplicidade de criação de métodos em classes que herdam de uma interface com assinaturas pre-definidas e me auto questionei:
"Há como bloquear a implementação de métodos em uma classe que herda de uma interface" ?Qual a opinião de vocês?
A vantagem de ser inteligente é que podemos fingir que somos imbecis enquanto ao contrario é completamente impossivel
Todas as Respostas
-
Não sei se entendi bem. Você quer limitar uma classe para que ela implemente apenas os métodos definidos na interface associada a ela?
Caso seja, (não entendo o porquê, mas...) em runtime pode-se validar usando reflection. Porém, em design time acredito que não seja possível (isso se tiver entendido bem o que quer fazer).
If you found this post helpful, please "Vote as Helpful". If it actually answered your question, remember to "Mark as Answer".
Se achou este post útil, por favor clique em "Votar como útil". Se por acaso respondeu sua dúvida, lembre de "Marcar como Resposta".
-
Isso mesmo, o motivo por incrível que pareça peguei um cenário e apos fazer uma analise existiam diversos métodos que fazem exatamente a mesma coisa que os demais.
A vantagem de ser inteligente é que podemos fingir que somos imbecis enquanto ao contrario é completamente impossivel
-
Acredito que neste caso apenas utilizando ferramenta de análise de código (Code Clone Detection - https://msdn.microsoft.com/en-us/library/hh205279.aspx). O detalhe é que não há recurso nativo para que a detecção seja feita antes do Check-in para TFS, por exemplo.
A única coisa que vi foi esse projeto http://www.mono-project.com/docs/tools+libraries/tools/gendarme/.
If you found this post helpful, please "Vote as Helpful". If it actually answered your question, remember to "Mark as Answer".
Se achou este post útil, por favor clique em "Votar como útil". Se por acaso respondeu sua dúvida, lembre de "Marcar como Resposta".
-
Valeu pelos links mais creio que não servirá para esse caso em si, por que não é somente duplicar uma funcionalidade com o mesmo nome e sim, funções com nomes diferentes que fazer a mesma coisa, creio que deveria ser uma coisa mais inteligente ou mesmo um bloqueio de implementação, creio que não há , mais continuarei a procura de uma solução .
A vantagem de ser inteligente é que podemos fingir que somos imbecis enquanto ao contrario é completamente impossivel
-
Só um ponto, o Code Clone Detection não se limita à analise de nome de método/membro de uma classe. Se o dev copiar fragmentos de um método e criar um novo (com outro nome), ele (Code Clone Detection) tende a apontar tal cópia.
If you found this post helpful, please "Vote as Helpful". If it actually answered your question, remember to "Mark as Answer".
Se achou este post útil, por favor clique em "Votar como útil". Se por acaso respondeu sua dúvida, lembre de "Marcar como Resposta".