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

  • 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?


    GTSA vantagem de ser inteligente é que podemos fingir que somos imbecis enquanto ao contrario é completamente impossivel

    terça-feira, 28 de março de 2017 12:43

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".

    terça-feira, 28 de março de 2017 12:52
  • 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.

    GTSA vantagem de ser inteligente é que podemos fingir que somos imbecis enquanto ao contrario é completamente impossivel

    terça-feira, 28 de março de 2017 12:54
  • 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".

    terça-feira, 28 de março de 2017 13:01
  • 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 .

    GTSA vantagem de ser inteligente é que podemos fingir que somos imbecis enquanto ao contrario é completamente impossivel

    terça-feira, 28 de março de 2017 13:11
  • 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".

    terça-feira, 28 de março de 2017 13:16